我是RubyonRails的新手,我正试图弄清楚如何将查询组合成一个数组,按顺序排列,以便它们可以根据时间输出。
在我的控制器中,我有这个:
@tag_media_items = client.tag_recent_media('cats')
@location_media_items = client.location_recent_media('412421')
在我看来,我有这个:
<% @tag_media_items.each do |media| %>
<img src="<%= media.images.thumbnail.url%>">
<% end%>
<% @location_media_items.each do |media| %>
<img src="<%= media.images.thumbnail.url%>">
<% end%>
我还可以计算出它创建的时间:
<%= media.created_time %>
在每个循环上。
现在我正在学习如何将循环放入数组中,然后根据created_item进行排列?这有一个简单的语法吗?
谢谢!
<% (@tag_media_items+@location_media_items).each do |media| %>
<img src="<%= media.images.thumbnail.url%>">
<% end%>
用于分拣:
<%(@tag_media_items+@location_media_items).
sort{|a,b| a.created_at <=> b.created_at}.
each do |media| %>
如果是同一个模型,我建议编写1个查询,而不是2个查询。
@media_items = client.recent_media_of_tag_and_location('cats', '412421')
如果你仍然需要2个查询并进行排序,你可以这样做,
控制器:
@media_items = @tag_media_items | @location_media_items
@sorted_items = @media_items.sort_by &:created_at
视图:
<% @sorted_items.each do |media| %>
<img src="<%= media.images.thumbnail.url%>">
<% end%>