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" value="{:class=>&quot;form-control&quot;}"> 

What am I doing wrong ?

1

3 Answers

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.

1

In the case of data binding is needed,

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

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.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.