我的代码非常简单,但我无法弄清楚错误的来源。我正在访问localhost:3000 / clients / new,我收到错误wrong number of arguments (3 for 1)
堆栈跟踪
ArgumentError - wrong number of arguments (3 for 1):
(gem) actionpack-3.2.12/lib/action_view/helpers/form_helper.rb:378:in `form_for'
(gem) haml-3.1.8/lib/haml/helpers/action_view_mods.rb:183:in `form_for_with_haml'
(gem) haml-3.1.8/lib/haml/helpers/xss_mods.rb:132:in `form_for_with_haml_xss'
app/views/clients/new.html.haml:1:in `_app_views_clients_new_html_haml__386962141__622328728'
/app/controllers/clients_controller.rb
class ClientsController < ApplicationController
def new
@client = Client.new
end
end
/app/models/client.rb
class Client < ActiveRecord::Base
attr_accessible :name
end
/app/views/clients/new.html.haml
= form_for @client, remote: true do |f|
= f.text_field :name
= f.submit
如果我在form_for之前检查@client只有一行,我得到了这个:
=> #<Client id: nil, name: nil, created_at: nil, updated_at: nil>
任何帮助将不胜感激。感谢
编辑以简化代码
答案 0 :(得分:0)
好的,修好了。即使它对大多数人来说可能没有用,我也会发布答案,但我希望它可以帮助一些
错误来自于我使用名为fields_for
的函数创建了一个帮助器。将我的函数名称更改为不同的东西可以解决问题。
如果有人可以解释:
为什么我的模块中嵌套的自定义fields_for
优先于action fields_for
?
还有为什么堆栈跟踪在第(gem) actionpack-3.2.12/lib/action_view/helpers/form_helper.rb:378
行停止而不是显示我的fields_for
被声明的行?