Я только что обновил Rails 2.3.2 от Rails 2.1 и заметил, что проблема связана с использованием опции :disabled
в полях ввода.Правильное использование: отключена опция для text_field в Rails 2.3?
Раньше мы использовали эту опцию в качестве логического значения, поэтому мы бы указали, нужно ли мы отключать поля на основе метода объекта, например.
f.text_field :amount, :disabled => @my_object.is_disabled?, :class => 'my_class'
Это прекрасно работает в Rails 2.1 - если is_disabled?
возвращает истину, поле формы отключена, в противном случае это не так.
В Rails 2.3, однако, это не тот случай. Поле формы отключается независимо от значения :disabled
.
Означает ли это, я должен положить if
заявление вокруг моего f.text_field
декларации, такие как:
<% if @my_object.is_disabled? %>
<%= f.text_field :amount, :disabled => 'disabled', :class => 'my_class' %>
<% else %>
<%= f.text_field :amount, :class => 'my_class' %>
<% end %>
Конечно, я-то здесь отсутствует?
Я этого не понимаю. В моем примере выше, @ my_object.is_disabled? на самом деле мой собственный пользовательский метод для объекта. Фактическое имя метода - «def is_locked?». – Olly
Вы пробовали делать: disabled => false или: disabled => true, чтобы увидеть, отключено ли оно и отключено на вашем текстовом поле. Я не уверен, почему он не будет работать, если ваш is_disabled? метод возвращает boolean. –
Corban - да, мой метод возвращает логическое значение. Если я добавлю явный «: disabled => false», то получаю тот же эффект. Rails добавляет этот код в HTML: disabled = "". Я бы предположил, что он ничего не должен добавлять, если значение: disabled - false. – Olly