我有一个旧的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" %>
任何人都可以告诉我这有什么问题以及为什么它没有显示闪存/错误消息?
答案 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">×</span><span class="sr-only">Close</span></button>
<%= value if value.is_a?(String) %>
</div>
<% end %>
让我知道这是否适合您