0

我有一个运行 Ruby 1.9.3p362 的 Rails 3.2.11 应用程序。

在其中一个模型中,我列出了表中的所有调用:

@calls = Call.all

这会在视图中使用以下代码正确输出所有调用:

<% @calls.each do |call| %>
    <%= call.time.strftime("%d %b. %Y -  %H:%M") %></td>
<% end %>

表中最近的时间戳为 2013-01-12 14:34:00。使用上面的代码一切正常。最新的通话显示在表格底部,如下所示:

12 Jan. 2013 - 14:34

但是,当我尝试颠倒顺序并按时间对调用进行排序时,最新的时间戳会出现混乱:

@calls = Call.order('time DESC')

将以下时间戳放在顶部:

31 Dec. 2013 - 19:27

有谁知道为什么会这样?一旦我添加了订单过滤器,它就会弄乱时间戳。

4

3 回答 3

1

I am not 100% sure, but I think the following should give you the timestamps in descending order

 @calls = Call.all.reverse
于 2013-01-12T16:12:49.243 回答
0

尝试这个:

   @calls = Call.descend_by_time
于 2013-01-12T17:37:09.107 回答
0

你可以试试这个查询:

@calls = Call.all.where(:destination => ['123']).desc(:time)

其中:time是用于排序的属性名称。

如果您使用updated_at每个模型表中普遍存在的属性进行排序,那么您可以替换:time:updated_at.

于 2013-01-12T19:40:24.720 回答