我很喜欢Rails但我们才刚开始约会。
用户可以对链接和评论进行投票。除了主键和时间戳外,我目前还为这些模型定义了以下属性:
我只是添加了评论模型,并思考如何将其与投票相结合。一些备选方案:
不知道什么是最好的。#1和#3引入了双重用途表,即表中的某些列只与该表中的行子集相关。2避免了这个问题,但似乎是多余的和愚蠢的。
权衡是不可避免的,还是我看不到黄金之路?你有什么推荐的?如果您碰巧知道github上有一个rails存储库可以处理类似的情况,我将非常感谢您的链接!
发布于 2011-03-01 22:37:47
我认为你要寻找的是一个多态关联。就你的情况而言,只需:
class Vote < ActiveRecord::Base
belongs_to :votable, :polymorphic => true
end
class Link < ActiveRecord::Base
has_many :votes, :as => :votable
end
class Comment < ActiveRecord::Base
has_many :votes, :as => :votable
#...
end你的选票表看起来应该是:
id : integer
votable_id : integer
votable_type : string # Comment || Link这里你有一个关于它的铁路:多态关联Railscast
https://stackoverflow.com/questions/5161179
复制相似问题