我有一个运行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
有谁知道为什么会这样?只要我添加订单过滤器,它就会混淆时间戳。
答案 0 :(得分:1)
我不是百分百肯定,但我认为以下内容应该按降序给你时间戳
@calls = Call.all.reverse
答案 1 :(得分:0)
试试这个:
@calls = Call.descend_by_time
答案 2 :(得分:0)
您可以尝试此查询:
@calls = Call.all.where(:destination => ['123']).desc(:time)
其中:time
是用于排序的属性名称。
如果使用在每个模型表中无处不在的updated_at
属性进行排序,则可以将:time
替换为:updated_at
。