Rails - 在迭代对象数组时如何将视图逻辑移动到帮助器中

时间:2013-05-19 20:03:30

标签: ruby-on-rails

所以在我看来,我正在显示属于产品类别的衬衫的价格。在我看来,我目前正在寻找一系列这样的衬衫:

<% @shirts.get_shirts("red", "small").each do |shirt| %>
  <%= shirt.price ">
<% end %>

这就像我想要的那样,只显示红色和小的衬衫的价格。

但是,当我尝试将此逻辑移动到相应的帮助器中时,它会显示完整的对象数据而不仅仅是价格。我的帮助代码如下:

def show_prices(color, size)
@shirts.get_shirts(color, size).each do |shirt|
  shirt.price
end
end

我在视图中这样称呼它:

<%= show_prices("red","small") %>

帮帮忙我做错了什么?它似乎应该做同样的事情,但事实并非如此。

1 个答案:

答案 0 :(得分:2)

each方法的结果是集合。可能你想要下一个辅助方法

def show_prices(color, size)
  @shirts.get_shirts(color, size).map(&:price).join
end