使用rails / prototype视图helpers / rjs的一个相当古老的应用程序。我们有一个相当反复出现的问题(每周大约发生六次,但通常在同一页面上),表格参数没有提交。因此,从控制器的角度来看,params hash只包含路由器能够从路由中获取的值。看看表格本身,它们往往是相当基本的。
一个共同点是他们使用remote_form_for,它实际上有一些表单禁用在原型启动ajax后运行的代码。在一些地方,它更明确,像这样(使用古老的语法,这开始作为rails 1应用程序):
remote_form_for :pallet_move,
:row_id => 'new_pallet_move',
:html => {:id => 'new_pallet_move_form'},
:method => :post,
:after => "$('new_pallet_move_form').disable();',
:url => create_many_pallet_moves_path do |f|
在控制器中,它正在做这样的事情
PalletMove.new params[:pallet_move].merge(:move => move)
现在,这段代码在99%的情况下都有效。但根据hoptoad,在上个月大约十次,我们得到NoMethodError: undefined method 'merge' for nil:NilClass
作为参数{"move_id"=>"908097", "action"=>"create_many", "controller"=>"pallet_moves"}
只是想看看人们之前是否已经看过这个,或者有任何调查的想法,因为我有点想法。