ruby Rails 4 - Helper不返回任何内容

uelo1irk  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(76)

我在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的助手,所以也许我做错了什么?

k5hmc34c

k5hmc34c1#

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方法将有助于从循环条件中联接集合对象。

相关问题