从1.1.7升级到1.2.1后,设计Flash消息未显示

时间:2011-11-03 23:54:13

标签: ruby-on-rails ruby-on-rails-3 devise

背景: 我几个月来一直试图将设备升级到最新版本,但主要障碍似乎是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

1 个答案:

答案 0 :(得分:1)

删除before_filter:sign_out_all_scopes