Mongoid has_many& embeds_one到同一个模型

时间:2017-06-01 11:47:15

标签: ruby-on-rails mongodb mongoid

我有三个模特

Company
Shipping_method
Order

公司可以有很多shipping_methods&当用户下订单时,他可以为订单选择shipping_method。

用户选择shipping_method&下订单,甚至shipping_method从公司层面改变,不应该在订单中更改。

到目前为止,这是我的实施,

class ShippingMethod
include Mongoid::Document
  field :name, type: String
  field :is_default, type: Boolean, default: false
  field :remove_image, type: Boolean, default: false

  belongs_to :ownable,          polymorphic: true
end

订单类

class Order
  include Mongoid::Document
  embeds_one  :shipping_method
end

公司类

class OfficeGroup
  include Mongoid::Document

  has_many :shipping_methods,         as: :ownable,           autosave: true
end

公司与公司之间的所有事情运送方式工作正常。但是,一旦我尝试将shipping_method分配给订单。我无法更新订单中的shipping_method。这就是我尝试更新订单中的shipping_method的方式。

shipping_method = ShippingMethod.find("id here")
order.shipping_method = shipping_method
order.save

我的关系有什么问题?有人可以解释一下

0 个答案:

没有答案