2009-06-01 2 views
2

Я разрабатываю приложение на основе вопросов и ответов, и я хотел бы запретить зарегистрированному пользователю отправлять несколько ответов на один и тот же вопрос.Как избежать нескольких ответов одного и того же пользователя?

Как я могу это сделать? И где лучше всего разместить этот код (т. Е. Контроллер, модель)?

+6

дать более подробную информацию. – mateusza

ответ

0

я, наконец, написал этот код:


# Reply model 
validates_uniqueness_of :user_id, :scope => :question_id 

# Helper method 
def user_has_replied(user, question) 
    Reply.find(:first, :conditions => {:user_id => user.id, :question_id => question.id}) 
end 
5

Вам потребуются две проверки: одна, когда вопросы загружаются, чтобы узнать, есть ли у этого пользователя ответ. Если да, не подавайте ему форму ответа.

И два, когда вопрос отправлен, чтобы проверить, есть ли у этого пользователя ответ, если это так, не отправляйте его.

1

Получить идентификатор пользователя, получить идентификатор вопроса. Проверьте, есть ли ответ от идентификатора пользователя, который соответствует идентификатору вопроса. Если он существует, скажите НЕТ! Если он не существует, то продолжить размещение ответа ...

+0

Я знаю, правильно ??? – GreenieMeanie

Смежные вопросы