2016-04-08 8 views
1

私はブロックをとるビューヘルパーメソッドを持っています。そのブロックをレンダリングすることは問題ありませんが、ブロックがレンダリングされた後にコンテンツを追加しようとすると、機能しません。ビューヘルパーで指定されたブロックの後にコンテンツをレンダリングする

def validation_div(&block) 
    content_tag :div do 
     yield 
     content_tag :div do 
     'This content is never rendered!' 
     end 
    end 
    end 

上記のコードはブロックを生成し、他のコンテンツをスキップします。私はまた試みた:content_forcaptureconcatwith_output_buffer成功なし。あなたが気づくように、私は実際にこれらのメソッドがどのように動作するかはわかりません...しかし、私の質問は、与えられたブロックがレンダリングされた後に何かをレンダリングする方法です。ありがとう!

+0

キャプチャは、あなたが何をしたいのか、最も可能性があります - あなたは – trh

+0

@trhをvalidation_divするブロックを渡すコードを投稿することができます '<%= validation_div DO%>

これは'

<% end %>をrenederedされます – ehannes

答えて

2

content_tag定義を見ると、1つのタグ、1つのクラス、1つのコンテンツしか出力されません。あなたは複数のコンテンツを出し入れしようとしていますので、参加する必要があります。

def validation_div(&block) 
    content = capture(&block) 
    content_tag :div do 
    content + content_tag(:div , "This content is never rendered!") 
    end 
end 
関連する問題