感谢您的宝贵时间!
代码很简单(mongoid没有使用rails):
require 'mongoid' # version 6.0.2
Mongoid.load!('mongoid.yml', :development)
class Office
include Mongoid::Document
embeds_one :owner
embeds_many :addresses
end
class Owner
include Mongoid::Document
end
class Address
include Mongoid::Document
end
我可以成功调用 office.addresses.build
,如下所示。
office = Office.new
office.addresses.build
office.save
但是当我调用 office.owner.build
时,会弹出错误提示
embed_one.rb:23:in `<main>': undefined method `build' for nil:NilClass (NoMethodError)
它应该以这种方式工作,对吗?哪里错了。
puts office.owner.class # NilClass
最佳答案
从 sleep 中恢复精神后......
我使用 puts office.methods
列出 office
可以调用的所有方法。
# Here's all the methods has *owner* in it
owner=
owner?
has_owner?
build_owner
create_owner
owner
office.build_owner
就是我正在寻找的!
关于ruby - mongoid embeds_one 构建指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970316/