0

我使用的軌道有很多5.獲取對象通過與多態關聯

這裏我使用有許多通過與多態

表是

categories, category_items, albums 

模型是

Category, CategoryItem, Album 

app/model/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 

我能夠通過聯想獲得一個特定的專輯類別。但現在我需要獲取特定類別的專輯。

請找到解決方案,並確保不要使用方法。協會應該是乾淨和簡單

很多感謝

回答

2

你只需要在Category模型

class Category < ApplicationRecord 
    has_many :category_items, dependent: :destroy 
    has_many :albums, through: :category_items, source: :category_itemable, source_type: 'Album' 
end 

增加對album一個has_many協會,現在你就可以得到專輯的類別實例

+0

謝謝。這是工作 –