Rails 4 - 助手不返回任何东西
Rails 4 - Helper not returning anything
我在 rails 4 上尝试构建一个简单的助手来减少我认为的一些代码。
这是使用助手之前的查看代码(show.html.erb):
<% unless @article.long_effects.blank? %>
<ul>
<% @article.long_effects.split(';').each do |effect| %>
<li><%= effect %></li>
<% end %>
</ul>
<% end %>
这是我为上述代码构建的助手:
def list(attribute)
unless attribute.blank?
content_tag(:ul) do
attribute.split(';').each do |a|
content_tag(:li, a)
end
end
end
end
然后我会像这样从视图中调用它
<%= list(@article.long_effects) %>
不幸的是,助手没有返回任何东西。有什么建议么?这是我第一次写 returns HTML 的帮助程序,所以也许我做错了什么?感谢您的帮助。
来自
def list(attribute)
unless attribute.blank?
content_tag(:ul) do
attribute.split(';').each do |a|
content_tag(:li, a)
end
end
end
end
至
def list(attribute)
unless attribute.blank?
content_tag(:ul) do
attribute.split(';').each do |a|
concat content_tag(:li, a)
end
end
end
end
concat
方法对于从循环条件中加入集合对象很有用。
我在 rails 4 上尝试构建一个简单的助手来减少我认为的一些代码。
这是使用助手之前的查看代码(show.html.erb):
<% unless @article.long_effects.blank? %>
<ul>
<% @article.long_effects.split(';').each do |effect| %>
<li><%= effect %></li>
<% end %>
</ul>
<% end %>
这是我为上述代码构建的助手:
def list(attribute)
unless attribute.blank?
content_tag(:ul) do
attribute.split(';').each do |a|
content_tag(:li, a)
end
end
end
end
然后我会像这样从视图中调用它
<%= list(@article.long_effects) %>
不幸的是,助手没有返回任何东西。有什么建议么?这是我第一次写 returns HTML 的帮助程序,所以也许我做错了什么?感谢您的帮助。
来自
def list(attribute)
unless attribute.blank?
content_tag(:ul) do
attribute.split(';').each do |a|
content_tag(:li, a)
end
end
end
end
至
def list(attribute)
unless attribute.blank?
content_tag(:ul) do
attribute.split(';').each do |a|
concat content_tag(:li, a)
end
end
end
end
concat
方法对于从循环条件中加入集合对象很有用。