34

I am trying to give a class to my text_field_tag

I have this

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

but it keeps generating this :

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

What am I doing wrong ?

David Geismar
  • 3,152
  • 6
  • 41
  • 80
  • please check following link.may be it will help http://stackoverflow.com/questions/29198495/add-custom-class-to-form-fields – nimTas Aug 31 '15 at 19:19

3 Answers3

66

You declared it wrong. Here is the one will work.

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

I gave the value of the input field as empty string, but you can give any value what meets your business needs.

Arup Rakshit
  • 116,827
  • 30
  • 260
  • 317
1

In the case of data binding is needed,

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

text_field_tag is an ActionView method. First thing to do is check the documentation. It says, text_field_tag takes this form:

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

Additionally:

  1. value is the initial value for the text box. Notice the default is nil, not an empty string. By passing in a string, you are using it in an undocumented way, which may have worked in this instance but could behave subtly different.

  2. name is a string. While Rails currently converts a symbols into strings here, consider using a string instead of a symbol for better future-proofing.

  3. The two issues above were overlooked by skipping straight to SO for the quick answer. Consider RTFM as it is the only definitive source, besides the source code itself.

IAmNaN
  • 10,305
  • 3
  • 53
  • 51