2009-05-20 3 views
2

Я только что обновил 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 %> 

Конечно, я-то здесь отсутствует?

ответ

4

Пожалуйста, проигнорируйте эту тему. Проблема, с которой я столкнулась, была на самом деле с Javascript.

Добавление: disabled => false добавляет «disabled = ''" в поле формы, которое правильно не отключить поле формы в конце концов.

6

Они избавились от is_boolean_field? в рельсах 2.3. Это просто boolean_field? Теперь.

так:

f.text_field :amount, :disabled => @my_object.disabled?, :class => 'my_class' 

должен работать нормально.

+0

Я этого не понимаю. В моем примере выше, @ my_object.is_disabled? на самом деле мой собственный пользовательский метод для объекта. Фактическое имя метода - «def is_locked?». – Olly

+0

Вы пробовали делать: disabled => false или: disabled => true, чтобы увидеть, отключено ли оно и отключено на вашем текстовом поле. Я не уверен, почему он не будет работать, если ваш is_disabled? метод возвращает boolean. –

+0

Corban - да, мой метод возвращает логическое значение. Если я добавлю явный «: disabled => false», то получаю тот же эффект. Rails добавляет этот код в HTML: disabled = "". Я бы предположил, что он ничего не должен добавлять, если значение: disabled - false. – Olly

Смежные вопросы