从收藏夹模型中选择对象方向

时间:2014-02-19 01:44:23

标签: ruby-on-rails activerecord

我们为用户,类别和收藏夹设置了这些模型:

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对象的列表?

1 个答案:

答案 0 :(得分:1)

您是否尝试过在用户中建立关系?

class User < ActiveRecord::Base
  has_many :favorites, inverse_of: :user
  has_many :categories, through: :favorites
end