0

私のコードは非常に単純ですが、エラーの原因がわかりません。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 の 1 行前に @client を調べると、次のようになります。

=> #<Client id: nil, name: nil, created_at: nil, updated_at: nil>

どんな助けでも大歓迎です。ありがとう

コードを簡素化するために編集

4

1 に答える 1

0

わかりました。修正しました。ほとんどの人にとって役に立たないかもしれませんが、回答を投稿しますが、少しでも役立つことを願っています

という名前の関数でヘルパーを作成したという事実からエラーが発生しましたfields_for。関数名を別のものに変更すると、問題が修正されました。

ただし、誰かが説明できる場合:

モジュールにネストされているカスタムがアクションパックfields_forよりも優先されるのはなぜfields_forですか?

また、myが宣言され(gem) actionpack-3.2.12/lib/action_view/helpers/form_helper.rb:378ている行を表示する代わりに、スタック トレースがその行で停止したのはなぜですか?fields_for

于 2013-03-10T01:41:12.917 に答える