2016-12-05 2 views
0

Danke für Ihre Zeit!mongoid embeds_on build howto

Der Code ist einfach (mongoid wurde ohne Schienen verwendet):

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 

ich erfolgreich office.addresses.build folgend nennen könnte.

office = Office.new 
office.addresses.build 
office.save 

Aber wenn ich office.owner.build nennen, Pop-up-Fehler

sagen
embed_one.rb:23:in `<main>': undefined method `build' for nil:NilClass (NoMethodError) 

Es soll auf diese Weise arbeiten, nicht wahr? Wo ist falsch.

puts office.owner.class # NilClass 

Antwort

0

Nachdem ich mich erfrischen aus einem Schlaf ...

Ich benutze puts office.methods alle Methoden zur Liste office aufrufen könnte.

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

office.build_owner ist das, was ich suche!