Rails 4 - Helper没有返回任何东西

时间:2015-12-03 05:42:58

标签: ruby-on-rails ruby ruby-on-rails-4 methods helper

我在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) %>

不幸的是,助手没有返回任何东西。有什么建议?这是我第一次写一个返回HTML的帮助器,所以也许我做错了什么?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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