我有帖子的投票和投票表。我可以验证投票和否决模型中的唯一性,以确保用户不能多次投票或否决。我想验证这两个模型的唯一性,以便用户不能投票反对他们已经投票的帖子,反之亦然。我已经尝试了自定义验证,userfaved,定义如下,但它不起作用。
class Vote < ActiveRecord::Base
validates_uniqueness_of :user_id, :scope => :article_id #allows only one vote
validate :userfaved
def userfaved
if Votedown.where( :user_id => :user_id, :artcle_id => :article_id).any?
errors.add(:user_id, 'already voted on this')
end
end
class Votedown < ActiveRecord::Base
validates_uniqueness_of :user_id, :scope => :article_id #allows only one votedown
validate :userfaved
def userfaved
if Vote.where(:user_id=> :user_id, :article_id => :article_id).any?
errors.add(:user_id, 'already voted on this')
end
end