0

Ruby1.9.3p362を実行しているRails3.2.11アプリケーションがあります。

モデルの1つで、テーブルにあるすべての呼び出しをリストしています。

@calls = Call.all

これにより、ビューで次のコードを使用してすべての呼び出しが正しく出力されます。

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

表の最新のタイムスタンプは2013-01-1214:34:00です。上記のコードを使用すると、すべてが正しく機能します。最新の呼び出しは、次のようにテーブルの下部に表示されます。

12 Jan. 2013 - 14:34

ただし、順序を逆にして呼び出しを時間で並べ替えると、タイムスタンプが台無しになります。

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

次のタイムスタンプを先頭に配置します。

31 Dec. 2013 - 19:27

なぜこれが起こっているのか誰かが知っていますか?注文フィルターを追加するとすぐに、タイムスタンプが台無しになります。

4

3 に答える 3

1

100% 確実ではありませんが、次のようにすると、タイムスタンプが降順で表示されるはずです。

 @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 に答える