背景: 我几个月来一直试图将设备升级到最新版本,但主要障碍似乎是1.2.0中引入的变化,所以我现在专注于升级到1.2.0。所有设计闪存消息都在1.1.7中正确显示,并且1.2.1中没有显示设计闪存消息。工作不起作用的消息之间的唯一变化是设计升级。出于这个问题的目的,我将专注于会话控制器闪存消息,但所有其他设计闪存消息都停止工作。
在1.1.7中: 在会话#new表单中,我输入了正确的电子邮件和无效的电子邮件。我点击提交。我收到了闪存[:alert]:“电子邮件或密码无效。”
在1.2.1中: 在会话#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消息之外的所有内容都在升级后工作。
SOLUTION:
删除before_filter:sign_out_all_scopes
答案 0 :(得分:1)
删除before_filter:sign_out_all_scopes