我有Favorite
允许Entries
并由Feeds
用户保存的模型。
class User < ActiveRecord::Base
has_many :favorites
has_many :favorite_feeds, :through => :favorites, :source => :favorable, :source_type => "Feed"
has_many :favorite_entries, :through => :favorites, :source => :favorable, :source_type => "Entry"
end
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :favorable, :polymorphic => true
attr_accessible :user, :favorable
end
class Feed < ActiveRecord::Base
has_many :favorites, :as => :favorable
has_many :fans, :through => :favorites, :source => :user
end
class Entry < ActiveRecord::Base
has_many :favorites, :as => :favorable
has_many :fans, :through => :favorites, :source => :user
end
我现在需要Entries
在页面上显示 ALL 并指示是否current_user
已将每个添加Entry
为favourite
. 目前调用是从数据库@entry.fans
中获取每个,这是低效的。User
我需要一种过滤此调用的方法,以仅获取属于的收藏夹,current_user
因为我不需要任何其他记录。
我可以在控制器的内存中执行此操作,但我认为有一种方法可以简单地选择s 收藏夹并使用 Active::Recordcurrent_user
将其加入模型。Entries
谢谢。