form_for自从升级到rails 3.1以来错误的参数数量(3个用于2)

在将我的应用程序移植到rails 3.1之前,这个form_for曾经工作过

true, :url => { :action => action, :substrate_id => @substrate_mass.substrate } do |f| %>
5, :onclick => 'this.select();', :value => @substrate_mass.quantity_per_year %>

我花了4个多小时试图弄清楚出了什么问题……我肯定不知道了什么

我收到错误:

错误的参数数量(2个为3)

请注意,我正在尝试更新不是activerecord对象的变量。 它只是一个未存储在数据库中的对象。

希望有人能提供帮助。

干杯

form_for只接受两个参数, recordoptions ,尽管记录可能是几个东西,包括一个简单的符号,一个对象或一个数组。

尝试删除第一个符号并发送您的对象。 如果您的模型不包含ActiveModel::Naming ,您可以通过:as选项设置名称。

 <%= form_for @substrate_mass, :as => 'substrate_mass', ... %> 

可以在这里找到更多帮助:
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

或直接查看来源:
https://github.com/rails/rails/blob/v3.1.0/actionpack/lib/action_view/helpers/form_helper.rb#L353