0

我有一个关于 Mongoid 关联的新手问题。我有这两个模型

class Manufacturer
  include Mongoid::Document

  field :name, type: String
  field :url, type: String

  has_many :products
end

class Product
  include Mongoid::Document

  field :manufacturer_name, type :String
  field :model, type: String
  field :price, type: Float

  belongs_to :manufacturer
end

现在我创建了一家新公司:

man = Manufacturer.create name: 'Flower Power Companies', url: 'www.flowerpower.com'

和一个新产品:

prod = Product.create manufacturer_name: what_comes_here, model: 'Foo0815', price: '19.90'

如何将 prod.manufacturer_name 引用到 man.name?如果 man.name 将被更改, prod.manufacturer_name 应自动更改。

4

1 回答 1

0

当您已经在两者之间建立关系时,为什么您需要在您的产品表中有一个 cloumn 制造名称。

做就是了

m = Manufacture.create name: "...", url: "..."
p = m.products.create model: ".." , price : 19.90 

这将自动在您的制造和产品之间创建关系。稍后当您想知道制造商的名称时,只需调用 p.manufacture.name

当您创建新产品并希望稍后将制造添加到产品中时,只需执行

p = Product.create model: "",price: ""
p.manufacture = Manufacture.find(:id)
于 2012-08-13T12:58:58.963 回答