6

collection_select フィールドを使用していますが、特定のモデル レコードを表すものではなく、適切なフィールドを NULL に設定するために使用されるデフォルトのオプションをオプションの先頭に追加する必要があります。しかし、私はそれを行う方法を見つけることができません。

さらに情報が必要な場合は、遠慮なくお尋ねください。標準フォーム ヘルパーで Rails 3.2.3 を使用する。

PS私はこのようなことができることを知っています:

@parents = ['default_name','nil']
@parents << Model.all.map {|item| [item.name,item.id]}

しかし、もっとエレガントな方法があると思います。

4

3 に答える 3

16

collection_selectヘルパー メソッドに渡すことができる :include_blank オプションがあります。

f.collection_select(:author_id, Author.all, :id, :name_with_initial,
                    :include_blank => "Nothing selected")

:prompt と呼ばれる同様のオプションもあります。こちらもチェックしてください。

于 2012-05-04T13:20:50.697 に答える
11

おそらくselect代わりに使用できます:

f.select(:item_id, @items.collect {|p| [ p.name, p.id ] } + ['Or create a new one like','new'], {:include_blank => 'Please select a item'})
于 2012-05-04T13:03:41.923 に答える
1

あなたの見解では、このようなことは受け入れられますか?

collection_select :field1, :field2, @models+[Model.new(name: "default_name")], :name, :id
于 2012-05-04T13:01:14.870 に答える