У меня есть настройки ассоциации HMT между моими Artist
и Group
моделями:Хорошо ли проверять идентификаторы в модели соединения?
class Artist < ApplicationRecord
has_many :artist_groups, dependent: :destroy
has_many :artist_groups, through: :artist_groups
end
class ArtistGroup < ApplicationRecord
has_many :memberships, class_name: "ArtistGroupMembership", dependent: :destroy
belongs_to :artist
belongs_to :group
has_and_belongs_to_many :roles
accepts_nested_attributes_for :memberships, reject_if: :all_blank, allow_destroy: true
validates_presence_of :artist_id, :group_id
end
class Group < ApplicationRecord
has_many :artist_groups, dependent: :destroy
has_many :members, through: :artist_groups, source: :artist
end
Как вы заметили, в моем ArtistGroup
присоединиться к модели он проверяет, чтобы убедиться, что художник и группа присутствует.
Когда ассоциация сохраняется, делать ли я что-то вроде этого:
artist.groups.push(Group.first)
или создать форму на мой взгляд (без ID входа) ActiveRecord достаточно умна, чтобы отобразить ассоциацию. С этим в моем случае я должен даже проверять эти идентификаторы в моих моделях присоединения? Я замечаю, что это становится еще болью при работе с полиморфными ассоциациями.