我正在尝试为父母和子模型实现类似于Reddit的投票功能(链接和评论,但我的情况,问题,has_many
回答)。
投票功能目前适用于投票问题,但在答案时,用户只能投票给出针对特定问题的一个答案,但不会投票给任何后续问题(不像SO,它允许你投票给你想要的答案..)
我发现我的问题出现在我的Vote.rb
文件中(当它被注释掉,它有效..),如下所示:
class Vote < ActiveRecord::Base
attr_accessible :question_id, :answer_id, :up # up is a boolean used for voting
belongs_to :user
belongs_to :question
belongs_to :answer
validates :user_id, :uniqueness => { :scope => :question_id } #this line causes the issue..
end
验证通过保证用户只能投票一次问题来解决问题,但由于我在问题的show
页面中呈现答案,我的预感是user_id
/ {{ 1}}唯一性规则也阻碍了它为answer_ids工作。如果可能的话,我想知道我是否可以构建验证,因此它首先验证question_id
/ answer_id
唯一性,然后验证问题/用户对..虽然我不知道该逻辑是否正确会让它发挥作用。
感谢您的帮助!
作为补充材料,这是我的控制器:
user_id