我们为用户,类别和收藏夹设置了这些模型:
class Favorite < ActiveRecord::Base
belongs_to :favoritable, polymorphic: true
belongs_to :user, inverse_of: :favorites
end
class User < ActiveRecord::Base
has_many :favorites, inverse_of: :user
end
class Category < ActiveRecord::Base
has_many :favorites, as: :favoritable
end
还有一些其他对象可以被收藏(SubCategories等),我希望能够直接获取Category对象而不是收藏列表:
@categories = @user.favorites.where(favoritable_type: "Category")
是否可以通过此@user
对象获取实际Category对象的列表?
答案 0 :(得分:1)
您是否尝试过在用户中建立关系?
class User < ActiveRecord::Base
has_many :favorites, inverse_of: :user
has_many :categories, through: :favorites
end