24

以下は、正しく機能する私の選択フォームです。

ユーザーがページをロードすると、値がnullまたは''の最初の'selectone...'が表示されます。

私はそれをオブジェクトに追加しようとしましたが、追加できなかったので、助けていただければ幸いです。

どうもありがとう!


私からしてみれば:

= select_tag 'incident[fault_id]' , options_from_collection_for_select( Fault.all, :id, :label)

Rails3.2とHAMLを使用しています


アップデート:

たまたま私は本当に甘いものを見つけました:

include_blank: 'select one...'

または完全に

= f.collection_select :fault_id, Fault.order(:label), :id, :label, include_blank: 'select one...'

それも好きな人のために...

参照:http ://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

4

3 に答える 3

44

options_from_collection_for_selectは、コレクションを反復処理し、呼び出しの結果をオプション値としてvalue_methodに割り当て、オプションテキストとしてtext_methodを割り当てることによってコンパイルされたオプションタグの文字列を返します。

したがって、値のない「select_one」オプション文字列を前に付けるだけです。

 = select_tag 'incident[fault_id]', content_tag(:option,'select one...',:value=>"")+options_from_collection_for_select( Fault.all, :id, :label)
于 2012-07-27T09:09:37.330 に答える
26

:promptそうではselect_tag ないのプロパティですoptions_from_collect_for_select

select_tag("sales_rep[manufacturer_id]", options_from_collection_for_select(@manufacturers, "id", "name"), { :prompt => 'Select Manufacturer' })
于 2013-10-03T21:46:27.457 に答える
0

次のことを試すことができます。

collection_select(:sales_rep, :manufacturer_id, @manufacturers, :id, :name, { :prompt => 'Select Manufacturer' })
于 2015-07-20T13:14:33.257 に答える