我在Rails 5中有3个模型:
产品
class Product < ApplicationRecord
belongs_to :category
has_and_belongs_to_many :stores
end
商品
class Store < ApplicationRecord
has_many :admin_users
has_and_belongs_to_many :roles
has_and_belongs_to_many :products
end
ProductsStores
class ProductsStores < ApplicationRecord
self.primary_key = :store_id
end
当我尝试使用命令 ProductsStores.first.destroy 删除连接表 ProductsStores 的一条记录时,将销毁连接表中的所有记录。为什么呢?
有人可以帮助我吗?
提前谢谢!
答案 0 :(得分:0)
首先,您必须了解HABTM和has_many之间的差异:
http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association
如果您创建了linkedin模型并想要使用此模型,则必须使用has_many through: association
,并添加到此模型belongs_to :product
和belongs_to :store
。然后使用标志dependent: :destroy
,您可以销毁或不销毁链接模型作为默认值。