#ruby-on-rails #ruby-on-rails-3 #form-for #fields-for
#ruby-on-rails #ruby-on-rails-3 #форма-для #поля- для
Вопрос:
Я пытаюсь добавить выпадающий список отключенных в свою таблицу, который я в конечном итоге сделаю условным. Однако значение disabled, похоже, не добавляется в строку при ее запуске.
Если я проверю элемент на странице, вручную добавлю отключенные работы, но он не добавляется во время выполнения.
= f.fields_for(:targets, qualification.target_for(@grandfather.user)) do |builder|
%tr
%td
= builder.select :completed, qualification.level_options.map{|o| [o,o]}, :disabled => "disabled"
= builder.hidden_field :qualification_id, :value => qualification.id
= builder.hidden_field :id
Комментарии:
1. В
:disabled => "disabled"
, значение"disabled"
должно быть значением одного из<option>
s выбора — т.е.qualification.level_options
должен быть вызван элементdisabled
.:disabled
используется не для отключения всего элемента выбора HTML, а скорее для пометки<option>
элемента как отключенного.2. Забба, я не совсем тебя понимаю. Не могли бы вы немного уточнить, не является ли :disabled => ‘disabled’ функцией HTML5?
3. Я думаю, вы имеете в виду, что «отключено» является опцией в раскрывающемся списке. Тем не менее, я хочу отключить весь выпадающий список, используя функцию disabled: «отключено», чтобы вы не могли выбрать опцию из поля. level_options уже содержит параметры, доступные для выбора
Ответ №1:
Ознакомьтесь с API для Rails Form Helper API
select(object, method, choices, options = {}, html_options = {})
Это добавлялось :disabled => "disabled"
к параметрам вместо html_options. Это код для использования вместо (обратите внимание на пустой хэш для параметра options):
builder.select(:completed, qualification.level_options.map{|o| [o,o]}, {}, {:disabled => "disabled"})
Комментарии:
1. Его лучше использовать
:readonly => true
вместо:disabled => "disabled"
. Поскольку поле:disabled => "disabled"
с не включено в параметры для контроллера