这与之前的问题很相似,但是我们的方法稍有改变。创建并销毁HABTM关联 - 不是实际记录?
我需要能够销毁版本之间的关联&曲目+产品&曲目不会破坏曲目本身。然后,我需要能够将Track与任何发行版或产品重新关联。
我的型号如下:
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 = Product.find(params[:product_id])
@track = @product.tracks.find(params[:id])
@track.destroy
我已经试过这样的事情,但它给了我一个notmethoderror:
@product = Product.find(params[:product_id])
@track = @product.products_tracks.find(params[:track_id])
@track.destroy
任何人都可以将我指向正确的方向吗?正如我所说,我主要需要销毁,但我还需要重新创建关联。
是的,你说得对,我已经调整了我的曲目/产品型号,但我现在得到一个“未初始化不断的产品::产品追踪'错误? – Raoot 2012-03-19 14:13:43
您是否删除了原始问题中提到的类定义并生成了新的模型类(并运行了数据库迁移)? – 2012-03-19 14:22:50
工作,非常感谢! – Raoot 2012-03-19 15:40:12