将 class 添加到 text_field_tag

adding a class to a text_field_tag

我想给我的text_field_tag

一个class

我有这个

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

但它一直在生成:

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

我做错了什么?

你声明错了。这是一个可行的方法。

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

我将 input 字段的值指定为空字符串,但您可以指定满足业务需要的任何值。

在需要数据绑定的情况下,

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

text_field_tag 是一个 ActionView 方法。首先要做的是check the documentation。它说,text_field_tag 采用这种形式:

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

另外:

  1. value 是文本框的初始值。请注意默认值为 nil,而不是空字符串。通过传入一个字符串,您正在以一种未记录的方式使用它,这种方式在这种情况下可能有效,但行为可能略有不同。

  2. name 是一个字符串。虽然 Rails 目前 将符号转换为字符串,但考虑使用字符串而不是符号以获得更好的未来验证。

  3. 上面的两个问题被直接跳到 SO 以获得快速答案而被忽略了。考虑 RTFM,因为除了源代码本身,它是唯一确定的来源。