0

假设我在product.categories.

我想要发生的事情是打印出我的类别列表,例如:

男人女人

如果我做:

<% product.categories.each do |cat| %>
  <% if product.categories.count > 1 %>
    <%= "#{cat.name}, " %>
  <% else %>
    <%= "#{cat.name} " %>
  <% end %>
<% end %>

打印出来Men, Women,

因此,如果不添加十亿条规则来检查最后一个元素和所有这些东西,我该如何处理以下情况:

  1. 如果有一个对象,则放置 no,
  2. 如果这是多个对象中的最后一个,请不要将 a,放在末尾。
  3. 如果这是最后一个对象,在许多集合中,以.<-- 这是一个不错的对象,但不是必须的。

我该如何处理?

谢谢。

4

2 回答 2

2
<%= product.categories.map{|cat| cat.name}.join(', ').to_s + "." %>

试试上面,那会奏效。如果您想要其他任何东西,请告诉我。

于 2012-12-18T04:58:39.497 回答
2

你可以做:

<%= product.categories.collect{|c| c.name} * ', ' %>.

“星号”方法 ( Array#*) 是Array#join.
请注意 ERb 标记外的句点。

于 2012-12-18T05:08:05.570 回答