闪存奇怪的文本字段行为

时间:2015-02-15 19:38:29

标签: css ruby-on-rails ruby flash

这是我的代码:

    <% if flash.now[:error] %>
        <div id='login-error'>
            <p id='error-text'><%= flash.now[:error] %></p>
        </div>
    <% end %>

    <% if flash.now[:error] %>

    <%= label_tag :email %>
    <%= text_field_tag :email, class: "error"%>

    <%= label_tag :password %>
    <%= password_field_tag :password, class: "error" %>

    <% else %>

    <%= label_tag :email %>
    <%= text_field_tag :email%>

    <%= label_tag :password %>
    <%= password_field_tag :password%>

    <% end %>

如果会话存在验证错误,则在呈现带有Flash的新页面时,文本字段中会显示实际的类名“错误”。该类未应用,但实际的类名称出现在text和password字段中。任何线索为什么会发生这种情况?

具体而言,这是电子邮件字段中显示的内容:{:class =&gt;“error”}

1 个答案:

答案 0 :(得分:1)

看看这是否更好(请注意nil参数):

<%= label_tag :email %>
<%= text_field_tag :email, nil, class: "error" %>

<%= label_tag :password %>
<%= password_field_tag :password, nil, class: "error" %>

对于这些特定的表单助手,options hash必须是第三个参数。第二个参数实际上设置了输入字段的值。