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 方法对于从循环条件中加入集合对象很有用。