Rails - Как многие-ко-многим, как ограничить зарегистрированному пользователю несколько раз статьей? - PullRequest
0 голосов
/ 15 июля 2011

У меня есть такой вид базы данных: схема:

статьи + ------- + article_users + ------ + пользователь

Как я могу запретить пользователю голосовать более одного раза за статью?

Существует ли правило проверки для этого?

1 Ответ

2 голосов
/ 15 июля 2011

Начните с замены на отношение has_many: through, если вы используете has_and_belongs_to_many, так что вы сможете получить доступ к модели отношения, т.е.: ArticleUser.

Затем сначала проверьте модель отношения ArticleUser:

validates_uniqueness_of :user_id, scope => :article_id

Если вы хотите узнать, проголосовал ли пользователь за статью, вы можете использовать что-то вроде:

ArticleUser.exists?(:user_id => @user.id, :article_id => @article.id)

или напрямую используя отношение has_many ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...