2016-12-05 10 views
0

お時間をありがとう!mongoid embeds_one build howto

コードは(mongoidがレールせずに使用した)単純です:

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 

答えて

0

...

私はofficeが呼び出すことができるすべてのメソッドをリストしputs office.methodsを使用しています。

# Here's all the methods has *owner* in it 
owner= 
owner? 
has_owner? 
build_owner 
create_owner 
owner 

office.build_owner私が探しているものです!