投稿用の投票表と投票表があります。投票モデルと投票モデル内の一意性を検証して、ユーザーが複数回投票または投票できないようにすることができます。ユーザーがすでに投票した投稿に投票できないように、またはその逆にできるように、両方のモデルの一意性を検証したいと思います。以下に定義されている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