ERBテンプレートで次のパターンを使用して繰り返しコードを削減しようとしています。
<% if content_for(some_key) %>
<%= yield(some_key) %>
<% else %>
Some default values here
<% end %>
で次のメソッドを定義しようとしましたApplicationHelper
が、当然のことながら、期待どおりに機能していません。
def content_for_with_default(key, &block)
if content_for?(key)
yield(key)
else
block.call
end
end
これが私がそれを使おうとしている方法です:
<%= content_for_with_default(some_key) do %>
Some default values here
<% end %>
content_for_with_default
意図した効果が得られるようにヘルパーを作成するにはどうすればよいですか?