有一些旧代码,在某些情况下会修改参数。我相信它以前有效(不是 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;

编辑应用程序/ Controller /bugs_controller.rb
添加到更新操作的开头
l_p = params.dup

if (false)

  params = l_p.dup  # NOT REACHED

end

脚本/服务器 WEBrick -p 5001

浏览到 http://localhost:5001/bugs
创建一个新错误
编辑错误
提交

最佳答案

根据 user45147 评论,此问题的正确答案在这里:

assign/replace params hash in rails

复制到这里:

关于ruby-on-rails - 参数变为 nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3723491/

10-12 23:05