0

我是 Ruby on Rails 的新手,我试图弄清楚如何将查询组合成一个数组,按顺序排列它们,以便它们可以根据时间输出。

在我的控制器中,我有这个:

@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 对其进行排列?有一个简单的语法吗?

谢谢!

4

2 回答 2

2
<% (@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| %>
于 2013-04-13T06:22:49.623 回答
1

如果它是相同的模型,我建议编写 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%>
于 2013-04-13T06:42:27.150 回答