0

次のテーブルがあります

One is Bookmarking Table has (activity_id as foreign key)
 Table 2 - Activity has(item_id as foreign key..)
 Table 3 - ItemCache has (id,item_id,item_type, created_at...)
 Table 4 - Blog has(id,title,user_id,created_at...)
 Table 5 - Tweet has (id,title,user_id,created_at..)

アイテムテーブルには実際のアイテムのブログがあり、つぶやきが保存されますそして、このアイテムがブックマークされると、アクティビティが保存されます

今、私は使用してフェッチしたユーザーのブックマークされたすべてのアイテムをフェッチしようとしています

current_user.bookmarks

そして今、これらのブックマークされたアイテムを、created_at desc のアイテムに基づいて注文したいと思います

ブックマークモデルでスコープを次のように書いてみました

scope :ordered, :joins => :activity, :order => "activities.created_at DESC"

上記はで作成されたアクティビティに基づいて並べ替えられます

キャッシュされたアイテムに基づいてこれらのブックマークされたアイテムを並べ替える方法 created_at

提案してください

4

1 に答える 1

1

多分これはうまくいくでしょう:

scope :ordered, :include => [{ :activity => :item_cache }], :order => "item_caches.created_at desc"

上記のコードは、次のことを前提としています。

bookmark.rb
  belongs_to :activity

activity.rb
  belongs_to :item_cache
于 2012-04-28T11:20:08.213 に答える