[英]Devise Flash Messages are not showing up after upgrading from 1.1.7 to 1.2.1
背景:我一直在尝试将设计升级到最新版本,但是主要的绊脚石似乎是1.2.0中引入的更改,因此我现在专注于升级到1.2.0。 所有的devise flash消息均正确显示在1.1.7中,而所有的devise flash消息均未显示在1.2.1中。 消息起作用与不起作用之间的唯一变化是设备升级。 出于这个问题的目的,我将重点讨论会话控制器Flash消息,但所有其他devise闪存消息均停止工作。
在1.1.7中:在sessions#new表单中,我输入正确的电子邮件和无效的电子邮件。 我点击提交。 我收到了flash [:alert]:“无效的电子邮件或密码。”
在1.2.1中:在sessions#new表单中,我输入正确的电子邮件和无效的电子邮件。 我点击提交。 我没有警报。
SessionsController:
class User::SessionsController < Devise::SessionsController
layout "no_chrome", :only => :new
skip_authorization_check
before_filter :sign_out_all_scopes, :only => %w[new create]
protect_from_forgery :except => [:new, :create]
skip_before_filter :verify_authenticity_token
def create
super
end
end
视图:sessions / new.html.erb
<div class="form_container">
<%= flash_div(:alert) %>
<%= simple_form_for @user, :url => user_session_path do |form| %>
<%= form.input :email %>
<%= form.input :password, :required => true %>
<%= form.submit "Sign in", :class=>"purple submit_button" %>
<% end %>
</div>
在application_helper.rb中
def flash_div(kind)
unless flash[kind].blank?
text = "<p>#{flash[kind]}</p>"
content_tag :div, text.html_safe, :id => "flash", :class => kind
end
end
由于我几个月来一直在尝试进行此升级,因此任何帮助将不胜感激。 我还想指出,升级后除了Flash消息之外的所有东西都可以正常工作。
解:
删除before_filter:sign_out_all_scopes
删除before_filter:sign_out_all_scopes
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.