web-dev-qa-db-fra.com

ajouter une classe à un text_field_tag

J'essaie de donner une classe à mon text_field_tag

J'ai ceci

<%= text_field_tag :login_aei, class: 'form-control' %>

mais cela continue à générer ceci:

<input type="text" name="login_aei" id="login_aei" value="{:class=>&quot;form-control&quot;}">

Qu'est-ce que je fais mal ?

26
David Geismar

Vous l'avez mal déclaré. Voici celui qui fonctionnera.

<%= text_field_tag :login_aei, "", class: 'form-control' %>

J'ai donné la valeur du champ input sous forme de chaîne vide, mais vous pouvez donner à n'importe quelle valeur ce qui répond aux besoins de votre entreprise.

49
Arup Rakshit

Dans le cas où la liaison de données est nécessaire,

<%= text_field_tag(:personName,"#{@person.name}", class:'form-control', placeholder: 'User Name' )%>
0
zawhtut

text_field_tag est une méthode ActionView. La première chose à faire est consultez la documentation . Il dit, text_field_tag prend cette forme:

text_field_tag(name, value = nil, options = {})

Aditionellement:

  1. value est la valeur initiale de la zone de texte. Notez que la valeur par défaut est nil et non une chaîne vide. En passant une chaîne, vous l'utilisez de manière non documentée, ce qui a peut-être fonctionné dans ce cas mais pourrait se comporter de manière légèrement différente.

  2. name est une chaîne. Tandis que Rails actuellement convertit un symbole en chaîne ici, envisagez d'utiliser une chaîne au lieu d'un symbole pour une meilleure gestion de l'avenir.

  3. Les deux problèmes ci-dessus ont été négligés en passant directement à SO pour obtenir une réponse rapide. Considérez RTFM comme c’est la seule source définitive, à part le code source lui-même.

0
IAmNaN