2013-01-12 88 views
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 

有誰知道爲什麼發生這種情況?一旦我添加了順序過濾器,它就會將時間戳記混淆起來。

+0

你有沒有試過@calls = Call.all.reverse? – Wasi

回答

1

我不是100%肯定,但我認爲下面應該給你按降序排列

@calls = Call.all.reverse 
+0

此工作,直到我嘗試並添加任何進一步的條件'@calls = Call.all.reverse.where(:目的地=> [「123」,「456」,「789」])。頁(params [:page]) .per_page(25)' – dannymcc

+0

你可以在Call.all上添加條件,然後調整結果 – Wasi

+0

嗯,它可以工作,直到我添加分頁。 ':@calls = Call.all.where(:destination => [「123」,「456」,「789」])。 「,」456「,」789「])。page(params [:page])。per_page(25).reverse' does not。 – dannymcc

0

試試這個時間戳:

@calls = Call.descend_by_time 
+0

This doesn似乎沒有用。 – dannymcc

0

你可以試試這個查詢:

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

其中:time是用於排序的屬性的名稱。

如果您使用updated_at屬性進行排序,該屬性在每個型號表中都無處不在,那麼您可以用:updated_at替換:time