我正在尝试将Map传递给属性,并且此错误TypeError: can't convert Symbol into Integer
正在发生。任何人都可以帮助我理解为什么会这样吗?
此代码一直有效,直到我从Heroku Bamboo迁移到Heroku Cedar(但Rails和Ruby的版本与特定版本相同(1.9.2p320 - > 1.9.2p321和Rails 3.0.20)
显而易见,因为此行正在处理地图attribute_ids = attributes_collection.map {|a| a['id'] || a[:id] }.compact
但是' a'最终只返回一个字符串,导致错误。
我包含了正在处理的Map和错误的堆栈跟踪。 https://gist.github.com/akinsgre/10994359
答案 0 :(得分:1)
更新
我想出了问题......现在我需要弄清楚如何修复现有记录。
nested_attributes在某些时候已从has_one更改为has_many;所以“坏”地图有这个
"party_attributes" => { "profile" => "e04aaa50c9c3501de345fb9b468e53d5371e2e83e098bd2d67de4be39531616a" }
好地图有
"party_attributes" => { "0" => { "profile" => "e04aaa50c9c3501de345fb9b468e53d5371e2e83e098bd2d67de4be39531616a" }, "1" => { "profile" => "8cdcde33e1315a77894d5a9601cff114b97dd5da9ca5f1c87ea7be3ea81398b3" }