В коллекции коллекции Ruby Rails отображается пустое значение "подсказка"?

У меня есть коллекция, которая выглядит следующим образом:

<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %>

Иногда появляется подсказка из опции: prompt, но иногда это не так. Кто-нибудь знает, где я могу начать устранять это? Возможно, я слишком долго смотрел на нее...

Ответ 1

:include_blank со значением вашего пустого варианта, похоже, делает трюк. Попробуйте следующее:

 {:include_blank => "Please select"}

Ответ 2

:prompt появляется в списке, когда нет выбранного значения.

:include_blank всегда отображается в списке, даже если вы загрузили выделение с выбранным значением.


если вы хотите, чтобы ваш выбор всегда имел "Select a State/Province" в качестве первой опции:

<%= f.collection_select :region_id, Region.all, :id, :name, include_blank: 'Select a State/Province' %>

если вы хотите, чтобы ваша коллекция имела "Select a State/Province" в качестве первой опции только в том случае, если регион еще не выбран:

<%= f.collection_select :region_id, Region.all, :id, :name, prompt: 'Select a State/Province' %>

источник: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

Ответ 3

У меня такая же проблема. Использование "подсказки", похоже, создает атрибут для тега select, проблема в том, что нет такого атрибута, о котором я знаю. Плюс его явно не то, что описано в документах Rails http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select.

Использование include_blank кажется хорошим способом для меня.

Приветствия, Робин.

Ответ 4

попробуйте <%= f.collection_select :region_id, Region.all, :id, :name, {prompt: 'Select a State/Province'}, {class: "form-control"} %>

Ответ 5

Вместо

:prompt => "Select a State/Province"

попробовать

:allow_blank => "Select a State/Province"

EDIT: Да, после проверки API я вижу, что я его смутил, подсказка правильная в соответствии с документацией, может быть, она только иногда появляется, потому что у вашего объекта уже есть значение, и поэтому запрос там, но это не текущее выбранное значение в выпадающем списке???