3

2 つのモデル クエリを組み合わせて、日付 ​​DESC ですべて並べ替えたいのですが、日付フィールドの名前が異なります。

@news_and_posts = [News.all(:limit => 3, :order => "date_of_news DESC") + Post.all(:limit => 3, :order => "date_of_post DESC") 

私はもう試した

@news_and_posts = [News.all(:limit => 3, :order => "date_of_news DESC") + Post.all(:limit => 3, :order => "date_of_post DESC").sort_by {|n, p| [n.date_of_news, p.date_of_post]}

ありがとう!

4

1 に答える 1

4

比較する各モデルに実装されている日付を返すエイリアス (たとえば、「date」と呼ばれるメソッド) を使用する必要があります。

次に、リストを次のように並べ替えますdate

(より良い実装のために@toklandに感謝します)

my_collection.sort_by(&:date)
于 2013-01-07T17:42:34.823 に答える