Rails中为密码字段添加class属性无效问题求助
解决Rails登录表单密码字段class不生效的问题
嘿,刚入门Ruby on Rails遇到这种小坑太正常啦,我来帮你搞定密码字段添加form-control类不生效的问题~
首先看你给出的邮箱字段写法是没问题的,那密码字段的写法很可能是参数顺序或者语法出了问题,下面给你两种正确的写法:
1. 使用password_field_tag(和你邮箱字段的写法保持一致)
因为你邮箱用的是text_field_tag,密码字段对应要用password_field_tag,注意参数顺序:第一个是字段名,第二个是默认值(密码一般不填默认值,所以传nil),第三个是选项哈希(放class属性):
<div class="field"> <%= label_tag :password %><br /> <%= password_field_tag :password, nil, :class => 'form-control' %> </div>
或者用Ruby 1.9+的新哈希语法更简洁:
<%= password_field_tag :password, nil, class: 'form-control' %>
2. 如果你是用form_for(更符合Rails惯例的写法)
如果你的登录表单是基于form_for构建的,那密码字段的写法应该是这样的(假设你的表单对象是@user):
<div class="field"> <%= f.label :password %><br /> <%= f.password_field :password, class: 'form-control' %> </div>
排查小技巧
如果还是不生效,可以打开浏览器的开发者工具(F12),查看密码输入框的HTML源码:
- 如果根本没有
form-control类,那肯定是Rails代码的写法问题,再检查参数顺序 - 如果有这个类但样式没生效,那可能是CSS的优先级问题,比如其他样式覆盖了
form-control的样式
内容的提问来源于stack exchange,提问作者Sagar Gautam
相关产品推荐
相关产品推荐

