我正在使用rails 5.
我在这里使用了多种多态
表是
categories, category_items, albums
模型
Category, CategoryItem, Album
应用程序/模型/ album.rb
class Album < ApplicationRecord
has_many :category_items, as: :category_itemable, dependent: :destroy
has_many :categories, through: :category_items
end
应用程序/模型/ category.rb
class Category < ApplicationRecord
has_many :category_items, dependent: :destroy
end
应用程序/模型/ category_item.rb
class CategoryItem < ApplicationRecord
belongs_to :category_itemable, polymorphic: true, optional: true
belongs_to :category, optional: true
end
我可以通过关联获取特定专辑的类别。但现在我需要获得特定类别的专辑。
请找到解决方案并确保不使用方法。协会应该干净简单
非常感谢提前
答案 0 :(得分:2)
您只需在has_many
模型中为album
添加Category
关联
class Category < ApplicationRecord
has_many :category_items, dependent: :destroy
has_many :albums, through: :category_items, source: :category_itemable, source_type: 'Album'
end
现在,您将能够获取类别实例的相册