這裏的當前查詢:如何修改複雜的find_by_sql查詢W /聯合成軌3
@feed = RatedActivity.find_by_sql(["(select *, null as queue_id, 3 as model_table_type from rated_activities where user_id in (?)) " +
"UNION (select *, null as queue_id, null as rating, 2 as model_table_type from watched_activities where user_id in (?)) " +
"UNION (select *, null as rating, 1 as model_table_type from queued_activities where user_id in (?)) " +"ORDER BY activity_datetime DESC limit 100", friend_ids, friend_ids, friend_ids])
現在,這是一個有點雜牌的,因爲實際上有模型設置爲:
class RatedActivity < ActiveRecord::Base
belongs_to :user
belongs_to :media
end
class QueuedActivity < ActiveRecord::Base
belongs_to :user
belongs_to :media
end
class WatchedActivity < ActiveRecord::Base
belongs_to :user
belongs_to :media
end
很想知道如何在rails 3.0中使用activerecord來實現與我在那裏的瘋狂工會所做的基本相同的事情。
會喜歡這樣做,除非我正在使用舊數據庫。我在這件事上沒有選擇。 – Paul 2010-09-27 08:05:23