Skip to content

Instantly share code, notes, and snippets.

@jzajpt
Created July 15, 2010 10:52
Show Gist options
  • Save jzajpt/476801 to your computer and use it in GitHub Desktop.
Save jzajpt/476801 to your computer and use it in GitHub Desktop.
context "when adding a nested doc and updating existing doc's attributes" do
let(:person) { Person.new }
before do
person.addresses << Address.new({ "street" => "Folsom", "city" => "San Francisco" })
person.save!
@attributes = {
"0" => { "street" => "New Street" },
"1" => { "street" => "5th Street", "city" => "Boston" },
}
person.update_attributes :addresses_attributes => @attributes
end
after do
Person.delete_all
end
it "updates existing doc's attributes" do
person.addresses.first.street.should == "New Street"
end
it "appends a new doc" do
person.addresses.count.should == 2
address = person.addresses.last
address.street.should == "5th Street"
address.city.should == "Boston"
end
end
1) Mongoid::Attributes updating nested docs when adding a nested doc and updating existing doc's attributes updates existing doc's attributes
Failure/Error: person.update_attributes :addresses_attributes => @attributes
have conflict mod
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/mongo-1.0.5/lib/../lib/mongo/connection.rb:383:in `send_message_with_safe_check'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/mongo-1.0.5/lib/../lib/mongo/collection.rb:330:in `update'
# ./spec/../lib/mongoid/collections/master.rb:15:in `send'
# ./spec/../lib/mongoid/collections/master.rb:15:in `update'
# ./spec/../lib/mongoid/collection.rb:19:in `send'
# ./spec/../lib/mongoid/collection.rb:19:in `update'
# ./spec/../lib/mongoid/persistence/update.rb:63:in `update'
# ./spec/../lib/mongoid/persistence/update.rb:45:in `persist'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/callbacks.rb:412:in `_run_update_callbacks'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/callbacks.rb:88:in `send'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/callbacks.rb:88:in `run_callbacks'
# ./spec/../lib/mongoid/persistence/update.rb:44:in `persist'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/callbacks.rb:437:in `_run_save_callbacks'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/callbacks.rb:88:in `send'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/callbacks.rb:88:in `run_callbacks'
# ./spec/../lib/mongoid/persistence/update.rb:43:in `persist'
# ./spec/../lib/mongoid/persistence.rb:77:in `update'
# ./spec/../lib/mongoid/persistence.rb:90:in `update_attributes'
# spec/integration/mongoid/attributes_spec.rb:118
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/hooks.rb:78:in `instance_eval'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/hooks.rb:78:in `run_hook_in'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/hooks.rb:51:in `each'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/hooks.rb:51:in `run_hook'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:154:in `eval_before_eachs'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:154:in `each'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:154:in `eval_before_eachs'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example.rb:125:in `run_before_each'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example.rb:48:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example.rb:46:in `call'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example.rb:46:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:186:in `run_examples'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:183:in `map'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:183:in `run_examples'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:174:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:175:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:175:in `map'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:175:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:175:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:175:in `map'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/example_group.rb:175:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/command_line.rb:38:in `run_examples'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/configuration.rb:118:in `inject'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/command_line.rb:38:in `each'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/command_line.rb:38:in `inject'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/command_line.rb:38:in `run_examples'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/command_line.rb:21:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/formatters/base_formatter.rb:37:in `report'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/formatters/base_formatter.rb:156:in `sync_output'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/formatters/base_formatter.rb:34:in `report'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/command_line.rb:18:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/runner.rb:46:in `run_in_process'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/runner.rb:37:in `run'
# /Users/jzajpt/.rvm/gems/ruby-1.8.7-p299@rails3/gems/rspec-core-2.0.0.beta.16/lib/rspec/core/runner.rb:10:in `autorun'
# spec/integration/mongoid/attributes_spec.rb:3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment