我想要获取数组中的最后5个项目,但要单独显示每个项目,而不是作为一个组。
以下是我在下面尝试过但没有成功的事情。
@array = Town.all
<% @array.each_slice(5) do |a| %>
<%= a.first %>
<%= a.second %>
<%= a.third %>
<%= a.fourth %>
<%= a.fifth %>
<% end %>
我无法弄清楚如何提取特定数量的物品,然后调用每个单独的物品。
答案 0 :(得分:1)
您要查找的方法是in_groups_of
(https://apidock.com/rails/Array/in_groups_of):
<% @towns.in_groups_of(5) do |five_towns| %>
<% five_towns.each do |town| %>
# [...]
<% end %>
<% end %>
更新:也许你只想要数组的最后5个元素。如果是这样,您只需致电:
Town.all.last(5)
# => array of (max) 5 Town records
答案 1 :(得分:0)
要获取数组的最后5项,您可以使用last
,然后使用each
进行迭代:
<%= @array.last(5).each do |a| %>
...
<% end %>
但似乎你想得到一个模型的最后5条记录;在这种情况下,你可以试试这个:
@array = Town.limit(5).order('id desc')
<%= @array.each do |a| %>
...
<% end %>
...有没有办法可以让我们说出a的最后5条记录 在一个循环内建模?也许
<%= @array.each do | a, b, c, d, e| %> <%= a.description %> <%= b.description %> <% end %>
您可以使用每个项目的索引,而不是使用each
;例如:
@last_five = @array.last(5)
<%= last_five[0] %>
<%= last_five[1] %>
<%= last_five[2] %>
<%= last_five[3] %>
<%= last_five[4] %>
虽然这不会是干的,但最好坚持使用each
。