日期和时间在视图中显示错误的日期?

时间:2013-01-12 15:40:56

标签: ruby ruby-on-rails-3 controller timestamp

我有一个运行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

有谁知道为什么会这样?只要我添加订单过滤器,它就会混淆时间戳。

3 个答案:

答案 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