所以,我有以下型號:一種類型的所有多態模型?
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :favoritable, polymorphic: true
# Table has a favoritable_id and favoritable_type
end
class Book < ActiveRecord::Base
has_many :favorites, as: :favoritable
end
class Magazine < ActiveBoard::Base
has_many :favorites, as: :favoritable
end
class User < ActiveRecord::Base
has_many :favorites
end
當我撥打電話:
user = User.find(1)
user.favorites
它帶回所有收藏的書籍和雜誌如預期(基本上是什麼樣子的數據庫與favoritable_id和favoritable_type列/屬性)。當我把這個:
user = User.find(1)
user.favorites.books
我得到一個錯誤,指出:
NoMethodError: undefined method 'books' ...
但是,調用:
user = User.find(1)
user.favorites.first.favoritable
這工作得很好。
我不是很懂得如何在這種設置中獲得所有最喜歡的書籍模型?我是我做錯了嗎?
再次感謝。
好吧,這工作,但返回最喜歡的模型(所有雜誌和書籍)。我怎樣才能得到這些書? – Sean
嘗試更新的答案。 –
好吧,這個作品可以返回所有最喜愛的模型(所有雜誌和書籍)。我怎樣才能得到這些書? – Sean