David Geismar
David Geismar

Reputation: 3422

adding a class to a text_field_tag

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 ?

Upvotes: 34

Views: 41693

Answers (3)

IAmNaN
IAmNaN

Reputation: 10592

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.

Upvotes: 0

zawhtut
zawhtut

Reputation: 8561

In the case of data binding is needed,

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

Upvotes: 2

Arup Rakshit
Arup Rakshit

Reputation: 118299

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.

Upvotes: 67

Related Questions