2009-05-20 20 views
2

我剛剛從Rails 2.1升級到Rails 2.3.2,並注意到在輸入字段上使用:disabled選項的問題。正確使用Rails 2.3中text_field的disabled選項?

此前,我們將此選項用作布爾值,因此我們將指示是否要基於對象上的方法禁用字段,例如,

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

這工作對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 %> 

當然我在這裏失去了一些東西?

回答

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 2009-05-20 22:09:45

相關問題