正确使用:Rails 2.3中text_field的禁用选项?

Oll*_*lly 2 ruby-on-rails

我刚刚从Rails 2.1更新到Rails 2.3.2,并注意到:disabled在输入字段上使用该选项的问题.

以前我们使用此选项作为布尔值,因此我们将指示是否要根据对象上的方法禁用字段,例如

f.text_field :amount, :disabled => @my_object.is_disabled?, :class => 'my_class'
Run Code Online (Sandbox Code Playgroud)

这在Rails 2.1中工作正常 - 如果is_disabled?返回true,则表单字段被禁用,否则不是.

但是在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 %>
Run Code Online (Sandbox Code Playgroud)

当然我在这里错过了一些东西?

Cor*_*ook 6

他们摆脱了is_boolean_field?在轨道2.3.它只是boolean_field?现在.

所以:

f.text_field :amount, :disabled => @my_object.disabled?, :class => 'my_class'
Run Code Online (Sandbox Code Playgroud)

应该工作正常.