【发布时间】:2011-12-21 15:37:35
【问题描述】:
背景: 几个月来我一直在尝试将设计升级到最新版本,但主要的绊脚石似乎是 1.2.0 中引入的更改,所以我现在专注于升级到 1.2.0。在 1.1.7 中正确显示了所有设计 Flash 消息,并且在 1.2.1 中没有显示任何设计 Flash 消息。消息工作到不工作之间的唯一变化是设计升级。出于这个问题的目的,我将专注于会话控制器闪存消息,但所有其他设计闪存消息都停止工作。
在 1.1.7 中: 在 session#new 表单中,我输入了正确的电子邮件和无效的电子邮件。我点击提交。我收到 flash[:alert]: "Invalid email or password."
在 1.2.1 中: 在 session#new 表单中,我输入了正确的电子邮件和无效的电子邮件。我点击提交。我没有收到任何警报。
会话控制器:
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
任何帮助都将不胜感激,因为我几个月来一直在尝试进行此升级。我还想指出,除了闪存消息之外的所有内容在升级后都可以正常工作。
解决方案:
删除 before_filter :sign_out_all_scopes
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 devise