0

simple_form ジェムを使用しています。私はかなり簡単なシナリオを持っています。スコープ付きルートがあり、フォームを取得しようとしています:

= simple_form_for(@scope, @post) do |f|
  = f.input :comment

簡素化されたルート ファイル:

scope ':scope' do
  resources :posts
end

ただし、次のエラーが表示されます。

undefined method `input' for #<ActionView::Helpers::FormBuilder:0x7f1b1eef1cb8> 

Rails 3.0.12 と simple_form 1.4.2 を使用しています

どこが間違っているのかアドバイスはありますか?

4

3 に答える 3

3

これは、 がsimple_form_for(そしてもそれへのメソッド委譲にfor_formすぎないためsimple_form_for) 2 番目の引数としてオプション ハッシュを受け取るために発生しています。その@postため、オプションとして解釈され、SimpleForm がフォーム ビルダーを変更できないようになっています。

スコープ付きリソースを操作する正しい方法は、次のような配列を使用することです。

= simple_form_for([@scope, @post]) do |f|
  = f.input :comment
于 2012-04-25T14:17:26.680 に答える
0

これを回避する1つの方法(理想的ではありませんが、simple_fieldsを使用することです。より良い解決策が見つかるまでこれを使い続けます。

= form_for(@scope, @post) do |f|
  =f.simple_fields_for :posts do |ff|
    =ff.input :comment
于 2012-04-23T09:08:08.020 に答える
0

Gem をインストールした後、サーバーを再起動しましたか?

于 2012-04-23T11:36:36.343 に答える