Это похоже на предыдущий вопрос, но с тех пор наш подход немного изменился.
Мне нужно иметь возможность уничтожать ассоциации между Релизами и Треками + Продукты и Треки, не разрушая сам трек.Затем мне нужно повторно связать трек с любым выпуском или продуктом.
Моими моделями являются следующие:
class Release < ActiveRecord::Base
has_many :products, :dependent => :destroy
has_and_belongs_to_many :tracks
end
class Product < ActiveRecord::Base
belongs_to :release
has_many :releases_tracks, :through => :release, :source => :tracks
has_and_belongs_to_many :tracks
before_save do
self.track_ids = self.releases_track_ids
end
end
class Track < ActiveRecord::Base
has_and_belongs_to_many :releases
has_and_belongs_to_many :products
end
class ReleaseTracks < ActiveRecord::Base
belongs_to :release
belongs_to :track
end
class ProductsTracks < ActiveRecord::Base
belongs_to :product
belongs_to :track
end
Может ли кто-нибудь помочь с соответствующими методами контроллера, пожалуйста?
Если я использую, например, следующую информацию в Product Track,разрушает трек и ассоциацию:
@product = Product.find(params[:product_id])
@track = @product.tracks.find(params[:id])
@track.destroy
Я пробовал что-то подобное, но это дает мне неметодеррор:
@product = Product.find(params[:product_id])
@track = @product.products_tracks.find(params[:track_id])
@track.destroy
Может кто-нибудь указать мне правильное направление?Как я уже сказал, это нужно в первую очередь для уничтожения, но мне также нужно иметь возможность воссоздавать ассоциации.