我设置了以下多态关联:
class Favorite < ActiveRecord::Base
belongs_to :favoritable, :polymorphic => true
belongs_to :user
end
class Photo < ActiveRecord::Base
has_many :favorites, :as => :favoritable
belongs_to :user
end
我最终想做的是拉出特定用户所喜欢的所有照片。
我如何实现这一目标?
答案 0 :(得分:1)
您可以使用Active Record Query Interface:
Photo.joins(:favorites).where("favorites.user_id = ?", user_id)
这将返回特定用户已收藏的Photo对象数组(以及来自Favorite的连接字段)。你必须将user_id传递给这个电话。