他のヘルパーとビューの両方から使用できるjavascriptを印刷するためのヘルパーを作成するときに、次の問題に遭遇しました。
def javascript(print_tag = false, &block)
content_for(:javascript) do
if print_tag
javascript_tag(&block) # does not work
javascript_tag { block.call } # does work
else
capture(&block)
end
end
end
このヘルパーはで呼び出す必要がありますjavascript { "alert('hurray'); }。
最初の選択肢(私が機能すると期待していた)では、Railsjavascript_tagヘルパーが空の<script type="text/javascript"> //<![CDATA[ //]]> </script>タグをレンダリングします。
ただし、2番目の選択肢は期待どおりに機能します。
そこで何が起こっているのですか?どうして違うの?