【问题标题】:Devise Flash Messages are not showing up after upgrading from 1.1.7 to 1.2.1从 1.1.7 升级到 1.2.1 后没有显示设计 Flash 消息
【发布时间】: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


    【解决方案1】:

    删除 before_filter :sign_out_all_scopes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多