-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
It looks like the object isn't being converted to a param? The example isn't the best but it shows the error. This seems to only happen in embedded documents, referenced documents work fine. The workaround for now was to call
.id
or
.to_param
but it'd be great to find a longer term fix. Thanks!
class Group include Mongoid::Document field :name, type: String embeds_many :users end class User include Mongoid::Document field :name, type: String embedded_in :group end group = Group.new(name: 'Foo Co') group.users << User.new(name: 'John Bar') group.save irb(main):012:0> Group.first === Group.first.users.first.group MOPED: 127.0.0.1:27017 QUERY database=testing_development collection=groups selector={"$query"=>{}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (1.5523ms) MOPED: 127.0.0.1:27017 QUERY database=testing_development collection=groups selector={"$query"=>{}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (0.8321ms) => true Group.find(Group.first) MOPED: 127.0.0.1:27017 QUERY database=testing_development collection=groups selector={"$query"=>{}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (1.1330ms) MOPED: 127.0.0.1:27017 QUERY database=testing_development collection=groups selector={"_id"=>"52161977d43dcdde4e000002"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.8149ms) => #<Group _id: 52161977d43dcdde4e000002, name: "Foo Co"> Group.find(Group.first.users.first.group) MOPED: 127.0.0.1:27017 QUERY database=testing_development collection=groups selector={"$query"=>{}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (1.2069ms) MOPED: 127.0.0.1:27017 QUERY database=testing_development collection=groups selector={"_id"=>#<Group _id: 52161977d43dcdde4e000002, name: "Foo Co">} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.4301ms) NoMethodError: undefined method `__bson_dump__' for #<Group _id: 52161977d43dcdde4e000002, name: "Foo Co">