У меня есть has_many через настройку связи между моделью песни и моделью исполнителя.Мой код выглядит примерно так
SongArtistMap Model
class SongArtistMap < ActiveRecord::Base
belongs_to :song
belongs_to :artist
end
Artist Model
class Artist < ActiveRecord::Base
has_many :song_artist_maps
has_many :songs, :through => :song_artist_maps
validates_presence_of :name
end
Song Model
class Song < ActiveRecord::Base
has_many :song_artist_maps
has_many :artists, :through => :song_artist_maps
accepts_nested_attributes_for :artists
end
У меня есть форма, гдепользователь отправляет песню и вводит название песни и исполнителя песни.
Поэтому, когда пользователь отправляет песню, а в моей таблице Artists еще нет исполнителя для песни, я хочу, чтобы он создал этого исполнителяи настройте карту в SongArtistMap
Если пользователь отправляет песню с исполнителем, который уже находится в таблице Artists, я просто хочу, чтобы SongArtistMap был создан, но художник не дублировался.
В настоящее время каждый раз пользовательотправляет песню, которую новый исполнитель создает в моей таблице исполнителей, даже если такая же уже существует, и для этого дублированного исполнителя создается SongArtistMap.
Есть идеи о том, как решить эту проблему?Я чувствую, что у рельсов, вероятно, есть какой-то простой маленький трюк, чтобы исправить это, уже встроенный. Спасибо!