【发布时间】:2009-05-20 12:36:35
【问题描述】:
我刚刚从 Rails 2.1 更新到 Rails 2.3.2,并注意到在输入字段上使用 :disabled 选项时出现问题。
以前我们将此选项用作布尔值,因此我们将指示是否要根据对象上的方法禁用字段,例如
f.text_field :amount, :disabled => @my_object.is_disabled?, :class => 'my_class'
这在 Rails 2.1 中可以正常工作——如果 is_disabled? 返回 true,则表单字段被禁用,否则不是。
然而,在 Rails 2.3 中,情况并非如此。无论:disabled 的值如何,都会禁用表单域。
这是否意味着我必须在我的 f.text_field 声明周围添加一个 if 声明,例如:
<% if @my_object.is_disabled? %>
<%= f.text_field :amount, :disabled => 'disabled', :class => 'my_class' %>
<% else %>
<%= f.text_field :amount, :class => 'my_class' %>
<% end %>
我肯定在这里遗漏了什么吗?
【问题讨论】:
标签: ruby-on-rails