私はまだ頭MongoDB
をMongoid
悩ませています。特に。
User
私が を持っていて、それぞれUser
がを持っているとしましょうThingamajig
。を作成するときにUser
、システムがそのための空白も自動的に作成するようThingamajig
にしUser
ます。
それぞれThingamajig
にwhatsit
、値がある場合は一意でなければならないフィールドがありますが、作成時に値を持たないことは許可されています。
そこで、次のクラスを定義します。
class Thingamajig
include Mongoid::Document
field :whatsit, type: String
index({whatsit: 1}, {unique: true, name: 'whatsit_index'})
end
class User
include Mongoid::Document
field :name, type: String
index({name: 1}, {unique: true, name: 'user_name_index'})
embeds_one :thingamajig, dependent: :nullify, autobuild: true
end
しかし、私が見つけたもの
User.create!(name: 'some name')
それUser.find(name: 'some name').thingamajig
はゼロです。
質問:
- 各ユーザーが関連付けられた Thingamajig を確実に取得するにはどうすればよいですか? と
name
a のフィールドUser
が必須であることを指定するにはどうすればよいですか?
参考までに、私はSintara
notを使用していますRails
(それが誰にとっても重要な場合)。