created_at
で注文しようとしているStory
というモデルがあります。私は、PostgreSQLを使用していますHerokuの、上の私のアプリを主催してきたので、私は私のコントローラで、次のしている:Rails:不適切な注文を返すPostgresの日付順
@stories = Story.find(:all, :order => "DATE(created_at) DESC" , :limit => 11)
私はこれはと、作成日順私の話の最初の11を与えることを期待します最新の物語が最初です。
残念ながら、これは機能しません。ストーリーの大部分は正しく並べ替えられますが、最初の2つは反転されます。つまり、最新のストーリーがリストの2番目に表示されます。
これはなぜでしょうか?私の結果は全く注文されていないか、間違った列(おそらくid?)で注文されていること、そしてこれまでインデックスページに表示されたときのように注文されたという疑惑が疑わしい。私はそれを期待どおりに注文することができますか?
誰かが気になる場合は、インデックスビューは単にストーリーを順番に表示するだけです。それは、(HAML)です:
- @stories.each do |story|
= render :partial => "event", :locals => { :event => story }
EDIT
私はcreated_at
はdatetime型の列であるとDATE(...)
機能は、時間部分を無視することを不審です。したがって、同じ日付に作成された要素をランダムな順序で返します。最初の2つのストーリーは同じ日に作成されていたが、数時間離れていたので、なぜそれらが逆転しているように見えるのかが分かるだろう。この場合、日付と時刻の両方で注文する正しい構文は何でしょうか?
それはトリックでした。ありがとう。 –