1

コントローラーで FormBuilder.new を使用してフォーム ビルダー オブジェクトを作成する必要があります。現在行っていることは次のとおりです。

@f = ActionView::Helpers::FormBuilder.new(:invoice, @invoice, self, {}, proc {} ) 

次のエラーがあります。

ActionView::Template::Error (undefined method `fields_for' "invoiceController.."

@f はフォーム ビルダー オブジェクトではないと考えているため、fields_for を認識できません。この問題は、定義の現在のビューである self パラメータにあるようです。FormBuilder でフォーム ビルダー オブジェクトを作成する正しい方法は何ですか? ありがとう。

4

1 に答える 1

0

コントローラーでこれらのパラメーターを使用して動作させない理由は、「テンプレート」パラメーターに対して「self」を呼び出すためです。これは、実際にはテンプレートにすぎません...テンプレート内から。コントローラーでは、self はテンプレートではなくコントローラーです。

于 2013-01-08T18:53:05.283 に答える