我有三個模型,Poem
和Song
和User
。 用戶可以對任意數量的詩歌和歌曲進行投票。Rails - 單表繼承中的多態性
一種解決方案是使兩個關聯模型PoemVote
和SongVote
class PoemVote
attr_accessible :poem_id, :user_id
belongs_to :poem
belongs_to :user
end
class SongVote
attr_accessible :song_id, :user_id
belongs_to :song
belongs_to :user
end
我可以打電話some_poem_vote.poem
和some_song_vote.song
然而,PoemVote
和SongVote
基本上是相同的。我如何使用單表繼承來從一個父類Vote
類擴展兩個?
我沿着這些路線思考的東西:
class Vote
attr_accessible :resource_id, :user_id
end
class PoemVote < Vote
...not sure what goes here...
end
class SongVote < Vote
...not sure what goes here...
end
如何使它工作,這樣我仍然可以調用some_poem_vote.poem
但骨子裏有PoemVotes和SongVotes共享一個數據庫表?或者有更好的解決方案來解決我的問題?
得到它的工作 - 謝謝:) 用你的投票例子, '類PoemVote <投票 belongs_to的:詩,CLASS_NAME: '詩',foreign_key: 'votable_id' end' – wyclin