Je viens de mettre à jour vers Rails 2.3.2 à partir de Rails 2.1 et j'ai remarqué un problème concernant l'utilisation de l'option :disabled
dans les champs de saisie.Utilisation correcte de: option désactivée pour text_field dans Rails 2.3?
Auparavant, nous utilisions cette option en tant que booléen. Nous indiquions donc si nous voulions ou non désactiver les champs en fonction d'une méthode sur l'objet, par ex.
f.text_field :amount, :disabled => @my_object.is_disabled?, :class => 'my_class'
Cela fonctionne bien dans Rails 2.1 - si is_disabled?
renvoie true, le champ de formulaire est désactivé, sinon ce n'est pas.
Dans Rails 2.3, cependant, ce n'est pas le cas. Le champ de formulaire est désactivé indépendamment de la valeur de :disabled
.
Est-ce que cela signifie que je vais devoir mettre une déclaration if
autour de ma déclaration f.text_field
tels que:
<% if @my_object.is_disabled? %>
<%= f.text_field :amount, :disabled => 'disabled', :class => 'my_class' %>
<% else %>
<%= f.text_field :amount, :class => 'my_class' %>
<% end %>
Certes, je manque quelque chose ici?
Je ne comprends pas cela. Dans mon exemple ci-dessus, @ my_object.is_disabled? est en fait ma propre méthode personnalisée sur un objet. Le nom de la méthode actuelle est "def is_locked?". – Olly
avez-vous essayé de faire: disabled => false or: disabled => true pour voir si elle est désactivée et désactivée sur votre champ text_field. Je ne sais pas pourquoi cela ne fonctionnerait pas si votre is_disabled? La méthode retourne booléen. –
Corban - oui, ma méthode renvoie un booléen. Si j'ajoute l'explicite ": disabled => false" alors j'ai le même effet. Rails ajoute ce code au code HTML: disabled = "". Je suppose qu'il ne devrait rien ajouter si la valeur de: disabled est false. – Olly