adding a class to a text_field_tag adding a class to a text_field_tag ruby-on-rails ruby-on-rails

adding a class to a text_field_tag


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.


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.