Как добавить 'select one...' в options_from_collection_for_select
Ниже приведена моя специальная форма, которая работает правильно.
Когда пользователь загружает страницу, он должен показать начальный "выбрать один... со значением null или".
Я попытался добавить его в Object, но не смог и был бы рад получить помощь!
Спасибо большое!
На мой взгляд:
= select_tag 'incident[fault_id]' , options_from_collection_for_select( Fault.all, :id, :label)
Я использую Rails 3.2 и HAML
Update:
Случайно я нашел что-то действительно сладкое:
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
Ответы
Ответ 1
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)
Ответ 2
prompt является свойством select tag NOT options_from_collect_for_select, поэтому
select_tag("sales_rep[manufacturer_id]", options_from_collection_for_select(@manufacturers, "id", "name"), { :prompt => 'Select Manufacturer' }
Ответ 3
collection_select (: sales_rep,: manufacturer_id, @manufacturers,: id,: name, {: prompt = > 'Select Manufacturer'})