我收到了一个消息列表。它们按'from'字段进行分组,并由created_at进行排序。如何在group_中订购记录
它们显示,像这样的企业显示了看法:
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
既然你想让它上升的阵列,为什么不'范围:最新的,顺序是:“created_at ASC”'? – KappaNossi
@KappaNossi我认为这些组织应该是命令'ASC',而组中的行应该在同一个字段上命令'DESC',否则我不会看到问题出在哪里。 –
正确。我希望首先与最新消息进行对话,但在该对话中它应该最后显示 – grabury