我有以下型号:
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
end
class ReleaseTracks < ActiveRecord::Base
belongs_to :release
belongs_to :track
end
class ProductsTracks < ActiveRecord::Base
belongs_to :product
belongs_to :track
end
现在我可以创建一个版本并添加曲目。当我创建一个产品时,它会继承版本中的曲目。
我想做的是能够在产品级别删除单个曲目,但不能删除曲目条目本身,因此删除ProductsTracks
中的关联。
我应该如何编写适当的destroy方法,它应该位于哪个控制器中,link_to
应该如何构造?
您是否尝试过在产品级别销毁曲目?我认为默认的行为是破坏关系,而不是关系另一端的记录。