-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
None
When you call something like .write_attributes([{:title => "foo"}]) on an existing association it bombs with the following error:
Unable to find source-code formatter for language: failure. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
/Error: person.write_attributes({:videos => [{:title => "Hackers"}]}) NoMethodError: undefined method `_index=' for {:title=>"Hackers"}:Hash
this is due to the reindex method being called on the hash, instead of first creating a document, it appears as if the substitute method is not building a new document just passing around the Hash.
I'm unsure of the correct way to fix this, as there are a lot of tests ensuring that the same relationship is used, and old data is run through unbind etc.
I have created a failing test case in my branch for anyone interested in giving it a look
https://github.com/erikstmartin/mongoid/commit/7a235258fbb7dc1059c2fa03e3ffe69369e0cce2