У меня есть четыре модели:ActiveRecord Validations для моделей с has_many, BELONGS_TO ассоциаций и ИППП
- пользователя
- Award
- Знак
- GameWeek
Ассоциации заключаются в следующем:
- У пользователя есть много вознаграждений.
- Приз принадлежит пользователю.
- Значок имеет множество наград.
- Премия относится к значку.
- У пользователя есть много game_weeks.
- GameWeek принадлежит пользователю.
- У GameWeek есть много наград.
- Премия относится к игре_week.
Таким образом, user_id, badge_id и game_week_id являются иностранными ключами в таблице вознаграждений.
Значок реализует модель ИППП. Скажем так, у него есть следующие подклассы: BadgeA и BadgeB.
Некоторые правила отметить:
game_week_id Ф.К. может быть нулевым для BadgeA, но не может быть нулем для BadgeB.
Вот мои вопросы:
- Для BadgeA, как я пишу проверки, что она может быть присуждена только один раз? То есть пользователь не может иметь больше одного.
- Для BadgeB, как я могу написать подтверждение, что его можно получить только один раз за неделю игры?
Что такое === делать? – keruilin
Это оператор равенства в Ruby. Вы можете увидеть более подробную информацию в [Object Ruby doc] [1] и в этом [блоге] [2]. [1]: http://ruby-doc.org/core/classes/Object.html#M000345 [2]: http://www.pluitsolutions.com/2006/10/09/comparing-equality- EQL-равно-и-дело-равенство-в-рубин / –