Mongoid には Item データベースがあり、さまざまなアイテムのコンテキストに応じたオプションの追加フィールドを保存します。
class Item
include Mongoid::Document
field :name, type: String
end
だから私は次のようなことができます:
a = Item.new
a.name = "Potato Chips"
a[:flavor] = "Barbecue"
a.save
b = Item.new
b.name = "Underwear"
b[:size] = "XL"
b.save
> Item.first.flavor
=> "Barbecue"
> Item.last.size
=> "XL"
ただし、次のようにしたいとします。
class Flavor
include Mongoid::Document
field :name, type: String
field :ingredients, type: Array
end
あなたがした場合:
f = Flavor.create({name: "Barbecue", ingredients: ["salt", "sugar"]})
a[:flavor] = f
a.save
あなたは得る:
NoMethodError: undefined method `__bson_dump__' for #<Flavor:0x007fb34d3c1718>
どうすれば行けるようになりますか:
Item.first.flavor.ingredients[0]