ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection
ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection
我有以下型号:
class Order < ActiveRecord::Base
has_many :order_products, foreign_key: 'order_foreign_id'
has_many :order_variation_values, through: :order_products
accepts_nested_attributes_for :order_variation_values
end
class OrderProduct < ActiveRecord::Base
has_many :order_variation_value
end
class OrderVariationValue < ActiveRecord::Base
belongs_to :order_product, foreign_key: 'order_product_foreign_id'
end
当我尝试使用 nested_attributes 添加记录时出现此错误:
ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection (Cannot modify association 'Order#order_variation_values' because the source reflection class 'OrderVariationValue' is associated to 'OrderProduct' via :has_many.):
app/controllers/api/v2/orders_controller.rb:8:in 'create'
关系有什么问题?
您的关联设置是错误的。应该是
class Order < ActiveRecord::Base
has_many :order_products, foreign_key: 'order_foreign_id'
has_many :order_variation_values, through: :order_products
accepts_nested_attributes_for :order_variation_values
end
class OrderProduct < ActiveRecord::Base
belongs_to :order
belongs_to :order_variation_value
end
class OrderVariationValue < ActiveRecord::Base
has_many :order_products, foreign_key: 'order_foreign_id'
has_many :orders, through: :order_products
end
查看这些 Guides 了解更多信息。
我有以下型号:
class Order < ActiveRecord::Base
has_many :order_products, foreign_key: 'order_foreign_id'
has_many :order_variation_values, through: :order_products
accepts_nested_attributes_for :order_variation_values
end
class OrderProduct < ActiveRecord::Base
has_many :order_variation_value
end
class OrderVariationValue < ActiveRecord::Base
belongs_to :order_product, foreign_key: 'order_product_foreign_id'
end
当我尝试使用 nested_attributes 添加记录时出现此错误:
ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection (Cannot modify association 'Order#order_variation_values' because the source reflection class 'OrderVariationValue' is associated to 'OrderProduct' via :has_many.):
app/controllers/api/v2/orders_controller.rb:8:in 'create'
关系有什么问题?
您的关联设置是错误的。应该是
class Order < ActiveRecord::Base
has_many :order_products, foreign_key: 'order_foreign_id'
has_many :order_variation_values, through: :order_products
accepts_nested_attributes_for :order_variation_values
end
class OrderProduct < ActiveRecord::Base
belongs_to :order
belongs_to :order_variation_value
end
class OrderVariationValue < ActiveRecord::Base
has_many :order_products, foreign_key: 'order_foreign_id'
has_many :orders, through: :order_products
end
查看这些 Guides 了解更多信息。