2011-09-23 64 views
10

此的form_for使用前我移植我的应用程序轨工作3.1的form_for因为升级错误的参数数目(3 2)轨道3.1

<div class="form-box" style="padding-left:1em;"> 
    <% 
    action = @existing_mass.nil? ? "add_to_power_plant": "update_power_plant_substrate"; 
    submit_button_label = @existing_mass.nil? ? 'Add': 'Update'; 
    %> 

    <%= form_for :substrate_mass, @substrate_mass, :remote => true, :url => { :action => action, :substrate_id => @substrate_mass.substrate } do |f| %> 
    <div> 
     <%= f.label :quantity_per_year, "Quantity" %> 
     <%= f.text_field :quantity_per_year, :size => 5, :onclick => 'this.select();', :value => @substrate_mass.quantity_per_year %> 
    </div> 

    <div class="actions" style="float:right;"> 
     <%= f.submit submit_button_label %> 
    </div> 
    <br/> 
    <% end %> 
</div> 

我已经花了超过4小时试图弄清楚什么是错的...肯定是有东西我不理解了

我得到的错误:

错误的参数数目(3 2)

请注意,我牛逼试图更新一个不是activerecord对象的变量。这只是一个没有存储在数据库中的对象。

希望有人能帮忙。

欢呼声

回答

10

form_for只需要两个参数,record,和options,虽然记录可以是几个因素,包括一个简单的符号,对象,或阵列。

试着放下第一个符号并发送你的对象。如果您的型号不包括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

+0

嗬这个工作这么好!我非常感谢。 – zabumba

相关问题