我试图在 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
帮助程序以使其具有预期效果?