В моем проекте у меня есть модель Athlete (наследует родительскую модель User), и она has_many: coach_contacts. В модели CoachContact мне нужно это, чтобы подтвердить уникальность своего атрибута contact_type, для sport_id, для каждого спортсмена.Как использовать вложенную область?
Например, максимальное количество автобусов Контактов спортсмен может иметь неограниченно (при условии, неограниченное количество различных видов спорта существовало), но максимальное количество автобусов Контактов спортсмен может иметь за каждого из своих видов спорта два , Не только это, но они должны быть разных типов. Есть два типа Coach Contacts, «школьный тренер» и «клубный тренер», и не может быть двух из них в одном и том же виде спорта для спортсмена, который владеет этими coach_contacts. Так вот тренер Контактная модель:
class CoachContact < ActiveRecord::Base
belongs_to :athlete
validates_presence_of :name, :email, :sport_id, :athlete_id, :contact_type
end
А вот пример визуального возможного сценария, как это должно работать:
Athlete
->Football
1. School coach
2. Club coach
->Baseball
1. School coach
->Basketball
2. Club coach
Однако, это не может быть такой:
Athlete
->Football
1. Club coach
2. Club coach
->Baseball
1. School coach
->Basketball
2. Club coach
Итак, как я могу проверить это в модели Coach Contact?
Спасибо!
Не это собирается разрешить только один на на athlete_id? – trevorhinesley
Должно ли это быть 'validates: contact_type, uniqueiquity: {scope: [: athlete_id,: sport_id]}' – meagar
@meagar, я думаю, что вы правы. – bgates