失败的设计登录没有显示错误消息?

时间:2015-01-08 18:35:14

标签: ruby-on-rails ruby-on-rails-3 devise

我有一个旧的rails应用程序曾经使用过Devise 2,但由于它从未显示任何闪存或错误消息,我决定将其升级到最新的希望它会有所帮助。它没有。我搜索了很多,但都没有成功。

现在,我得到了rails 3.2.21并设计了3.4.1。我没有自定义控制器,所有生成的视图只是略有改变。当我登录并填写正确的凭证时,我登录。当我输入错误的凭据时,会记录下来:

Started POST "/login" for 127.0.0.1 at 2015-01-08 19:27:33 +0100
Processing by Devise::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"JwzYm4gLuXINZxDUsy4+hRIE5uZbFM7oWKwqKXR7ET0=", "user"=>{"email"=>"Patrick.Bartels@gmail.com", "password"=>"[FILTERED]"}, "commit"=>"Login"}
Completed 401 Unauthorized in 0.5ms
Processing by Devise::SessionsController#new as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"JwzYm4gLuXINZxDUsy4+hRIE5uZbFM7oWKwqKXR7ET0=", "user"=>{"email"=>"Patrick.Bartels@gmail.com", "password"=>"[FILTERED]"}, "commit"=>"Login"}
WARNING: Can't verify CSRF token authenticity
  Rendered devise/sessions/new.html.erb within layouts/application (1.5ms)
  Rendered shared/_sidebar.html.erb (0.3ms)
Completed 200 OK in 21.6ms (Views: 20.9ms | ActiveRecord: 0.0ms)

没有显示闪烁或错误消息。 application.html.erb

<% flash.each do |type, message| -%>
  <div class="message <%= type %>">
    <%= message %>
  </div>
<% end -%>

sessions/new.html.erb

<h2>Einloggen</h2>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
  <div><%= f.label :email, 'E-Mail' %><br />
  <%= f.email_field :email, :autofocus => true %></div>
  <div><%= f.label :password, 'Passwort' %><br />
  <%= f.password_field :password %></div>
  <% if devise_mapping.rememberable? -%>
    <div><%= f.check_box :remember_me %> <%= f.label :remember_me, 'Login merken?' %></div>
  <% end -%>
  <div><%= f.submit "Einloggen" %></div>
<% end %>
<%= render "devise/shared/links" %>

任何人都可以告诉我这有什么问题以及为什么它没有显示闪存/错误消息?

1 个答案:

答案 0 :(得分:0)

这是我过去用来呈现消息的一个例子

<% flash.each do |key, value| %>
  <div class="alert alert-dismissible alert-<%= key.to_s == 'notice' ? 'success' : 'danger' %>" role="alert">
   <button type="button" class="close" data-dismiss="alert">
     <span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
       <%= value if value.is_a?(String) %>
  </div>
<% end %>

让我知道这是否适合您