gpt4 book ai didi

ruby-on-rails - 自升级到 rails 3.1 以来,form_for 参数数量错误(3 为 2)

转载 作者:行者123 更新时间:2023-12-04 02:08:19 25 4
gpt4 key购买 nike

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

<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 对象的变量。它只是一个未存储在数据库中的对象。

希望有人能帮忙。

干杯

最佳答案

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

关于ruby-on-rails - 自升级到 rails 3.1 以来,form_for 参数数量错误(3 为 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7523252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com