我有三个模型,Poem
andSong
和User
。用户可以对任意数量的诗歌和歌曲进行投票。
一种解决方案是制作两个关联模型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 共享一个数据库表?或者我的问题有更好的解决方案吗?