首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自升级到rails 3.1以来,form_for参数的数量错误(3个对应2个)

自升级到rails 3.1以来,form_for参数的数量错误(3个对应2个)
EN

Stack Overflow用户
提问于 2011-09-23 09:13:04
回答 1查看 6.7K关注 0票数 11

在我将应用程序移植到Rails3.1之前,这个form_for可以正常工作

代码语言:javascript
复制
<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个多小时试图弄清楚出了什么问题...肯定有什么事情我不再理解了

我得到了错误:

参数数量错误(2个参数中有3个)

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

希望有人能帮上忙。

干杯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-23 09:20:31

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

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

代码语言:javascript
复制
<%= 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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7523252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档