有一些旧代码在某种情况下会修改params.我相信它之前有效(不是100%).我们现在将params设置为nil,无论条件是否满足.
罪魁祸首是在条件之内,我执行了params = tmp.dup.即使条件为假,也会导致更新操作出错.
我能够通过最小的测试重新创建
(Rails 2.3.5)
rails bug;
cd bug;
script/generate scaffold bug name:string;
rake db:create;
rake db:migrate;
Run Code Online (Sandbox Code Playgroud)
编辑apps/controllers/bugs_controller.rb添加到更新操作的开头
l_p = params.dup
if (false)
params = l_p.dup # NOT REACHED
end
Run Code Online (Sandbox Code Playgroud)
脚本/服务器WEBrick -p 5001
浏览到http:// localhost:5001/bugs 创建一个新的bug编辑错误提交