我有以下型号:
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
应该如何构造?
答案 0 :(得分:1)
您是否尝试过在产品级别销毁曲目?我认为默认行为是破坏关系,而不是关系另一端的记录。