下面的类
class Producttag < ApplicationRecord
belongs_to :product, optional: true
belongs_to :variant, optional: true
是其父级的子级
class Product < ApplicationRecord
has_many :productags, dependent: :destroy
他本身就在另外两个父母的链中。每个类对其子类调用 dependent: :destroy
。
对销毁操作运行测试时,每个类都会遇到相同的错误:
NameError: uninitialized constant Product::Productag
或在变体类上
NameError: uninitialized constant Variant::Productag
所有其他 parnet 子关系依赖项都被破坏,但不是后一个。唯一明显的区别是关系上的 optional: true
。这是关于销毁操作中的错误的假设,但很难理解。
如果这是动机,为什么?或者缺少什么以允许破坏“可选”孩子 记录?
答案 0 :(得分:1)
班级是 Producttag
但你的关系是 has_many :productags, dependent: :destroy
。
您在 producttag 中缺少“t”,这导致 rails 寻找“class_name”Productag
话虽如此,ProductTag
和 product_tag
会让这一点更加明显