Created
June 23, 2011 13:53
-
-
Save jeremy6d/1042571 to your computer and use it in GitHub Desktop.
Mongoid references_many adding problem
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'mongoid' | |
require 'test/unit' | |
Mongoid.configure do |config| | |
config.master = Mongo::Connection.new.db("adding_to_references_many_test") | |
end | |
class Node | |
include Mongoid::Document | |
field :title, :type => String | |
references_many :children, :class_name => "Node", | |
:foreign_key => :parent_id | |
referenced_in :parent, :class_name => "Node" | |
end | |
class AddingToReferencesManyTest < Test::Unit::TestCase | |
n1 = Node.create :title => "Node 1" | |
n2 = Node.create :title => "Node 2" | |
n1.children << n2 | |
n1.save | |
assert_equal [n2], n1.reload.children | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10:49 ~/Code>gem which mongoid | |
/Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid.rb | |
10:49 ~/Code>ruby -v | |
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0] | |
10:49 ~/Code>ruby mongoid_test.rb | |
/Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/attributes.rb:162:in `method_missing': undefined method `entries' for #<Node:0x000001010e27a0> (NoMethodError) | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:219:in `block in load!' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:217:in `tap' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:217:in `load!' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/accessors.rb:28:in `block in build' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/accessors.rb:27:in `tap' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/accessors.rb:27:in `build' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/accessors.rb:166:in `block (2 levels) in setter' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/extensions/object/yoda.rb:22:in `do_or_do_not' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/bindings/referenced/many.rb:46:in `bind_one' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:299:in `append' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:29:in `block (2 levels) in <<' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:27:in `each' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:27:in `block in <<' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/batch.rb:64:in `count_executions' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/batch.rb:40:in `batched' | |
from /Users/jeremyweiland/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.0.2/lib/mongoid/relations/referenced/many.rb:26:in `<<' | |
from mongoid_test.rb:22:in `<class:AddingToReferencesManyTest>' | |
from mongoid_test.rb:19:in `<main>' |
I updated the example to reflect the relations in my production app.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I think you are just missing the inverse_of. See below