У меня есть модель AnimalType
, которая has_and_belongs_to_many :trainers, join_table: 'trainers_animal_types'
, и мне нужно правило проверки, чтобы я мог создавать тренера только с существующими типами животных, чтобы у тренера не было дублированных типов животных.Например, тренер может иметь типы животных ['Cat', 'Dog']
, а не ['Cat', 'Cat', 'Dog', 'Dog']
class AnimalType < ApplicationRecord
has_and_belongs_to_many :trainers, join_table: 'trainers_animal_types'
end
AnimalType
имеет только имя в БД.
create_table "animal_types", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Таблица присоединения
create_table "trainers_animal_types", id: false, force: :cascade do |t|
t.integer "trainer_id"
t.integer "animal_type_id"
end
Есть ли способ проверить уникальность имени в has_and_belongs_to_many
ассоциации?