0

サーバーに直接投稿されない検索フォームのみに使用される選択を作成しようとしています。ビューからのコードは次のとおりです。

= simple_form_for :tags, url: '#' do |f|
  = f.input 'id[]', collection: @tags

@tags はアクティブな関係です。acts-as-taggable-onからのタグ は、コントローラーからの私のコードです。

@tags = project.user_statuses.tag_counts_on(:tags)

コンソールからは次のようになります。

[#<ActsAsTaggableOn::Tag id: 1, name: "amazing">, 
 #<ActsAsTaggableOn::Tag id: 2, name: "bfc-release">,
 #<ActsAsTaggableOn::Tag id: 3, name: "demo">,
 #<ActsAsTaggableOn::Tag id: 4, name: "awesome">,
 #<ActsAsTaggableOn::Tag id: 5, name: "project1">]

しかし、ビューの # に対して未定義のメソッド `id[]' が表示されます。私が間違っていることは何ですか?

4

2 に答える 2

0

SimpleForm は、このフィールドの値を取得しようとします。オブジェクト ( :tags) を受け取り、field( id[]) という名前のメソッドを送信します。したがって、これはにつながり:tags.send 'id[]'ます。そして、Symbol クラスにはそのようなメソッドがないため、エラーが発生しました。

オブジェクトがモデルでない場合に simple_form_for を使用するのはおそらく悪い考えです。

于 2013-07-24T11:47:58.413 に答える