Я создал приложение для блога с использованием Ruby on Rails, которое включает возможность голосовать за сообщения. Пользователь может щелкнуть голосование, и в таблице голосования создается запись. Сейчас я пытаюсь ограничить участие одного и того же человека в голосовании за пост несколько раз.
class Post
has_many :votes
end
class Vote
belongs_to :post
end
Когда создается запись голосования, я использую VotesController для передачи: post_id и использую скрытое поле в представлении для передачи ip_address (оба в таблицу голосования). Мне интересно, есть ли способ добавить проверку в Модель голосования, которая ищет, чтобы узнать, есть ли у post_id ip_address, который соответствует человеку, запрашивающему голосование.
Я попытался просто использовать validates_uniqueness_of: ip_address, но это ограничивает пользователя от голосования по любому посту. Я просто хочу запретить пользователям голосовать за определенный пост, за который они уже проголосовали.
Есть ли способ сделать это с помощью проверки?