【发布时间】:2014-01-28 20:37:51
【问题描述】:
我有收到的邮件列表。它们按 'from' 字段分组,并按 created_at 排序。
它们在商家展示视图中显示如下:
From: Tom
10pm Message7
8pm Message4
6pm Message2
From: Sara
9pm Message6
7pm Message3
5pm Message1
From: John
8pm Message5
在我的业务控制器中:
@messages = @business.short_messages.newest.group_by &:from
在 short_messages 模型中,我有范围:
scope :newest, order: "created_at desc"
在我看来:
<% @messages.each do |from, message| %>
<p><%= from %></p>
<% message.each do |msg| %>
<p><%= msg.created_at %> <%= msg.content %></p>
<% end %>
<% end %>
对话的分组和排序没问题。
问题是我希望首先与最新消息进行对话,但在该对话中它应该最后显示
From: Tom
6pm Message2
8pm Message4
10pm Message7
From: Sara
5pm Message1
7pm Message3
9pm Message6
From: John
8pm Message5
【问题讨论】:
-
既然你想让它上升,为什么不直接
scope :newest, order: "created_at ASC"? -
@KappaNossi 我认为组应该按
ASC排序,而组中的行应该在同一字段上按DESC排序,否则我看不出问题出在哪里应该是。 -
正确。我希望首先与最新消息进行对话,但在该对话中它应该最后显示
标签: ruby-on-rails ruby