Пытаюсь отключить весь f.select в рельсах - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь отключить раскрывающееся поле в своей форме, но с опцией disable: true поле все еще интерактивно, спасибо за помощь!

f.select:

<%= f.select(:point_constraint_id, @point_constraints.collect {|u| [u.name, u.id]}, :prompt => 'Select', label: t('point.operational_limitions')  + ' *', label_class: "light-text", disabled: true, required: true )%>

1 Ответ

2 голосов
/ 06 мая 2020

Ruby считывает ha sh подобных параметров в списке параметров как один ha sh, когда они находятся в конце списка параметров. Поэтому все параметры передаются в options ha sh. Но подпись метода select выглядит так:

select(object, method, choices = nil, options = {}, html_options = {}, &block)

Следовательно, вам нужно отделить options от html_options, чтобы помочь Ruby понять, что disable: true на самом деле html_option:

<%= f.select(
      :point_constraint_id, 
      @point_constraints.collect { |u| [u.name, u.id] }, 
      { 
        prompt: 'Select', 
        label: "#{t('point.operational_limitions')}*", 
        label_class: "light-text", 
        required: true
      }, 
      { 
        disabled: true 
      } 
    ) %>

Обратите внимание, что последний {...} вокруг disabled: true на самом деле не нужен. Я добавил его, чтобы было понятнее, что вам нужно передать этому методу два хэша. Один с параметрами для выбора, другой для чистых параметров HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...