배경 : 지난 몇 개월 동안 최신 버전으로 업그레이드하려고 시도했지만 큰 걸림돌이 도입 된 것 같습니다. 1.2.0이므로 지금은 1.2.0으로 업그레이드하는 데 집중하고 있습니다. 모든 장치 플래시 메시지는 1.1.7에 올바르게 표시되고 1.2.1에는 장치 플래시 메시지가 표시되지 않습니다. 작동하지 않는 메시지 사이의 유일한 변화는 장치 업그레이드입니다. 이 질문의 목적을 위해 세션 컨트롤러의 플래시 메시지에 초점을 맞추 겠지만 다른 모든 플래시 메시지는 작동하지 않습니다.Devise Flash 1.1.7에서 1.2.1로 업그레이드 한 후 메시지가 표시되지 않습니다.
있음 1.1.7 : 세션 # 새 양식에 정확한 이메일과 잘못된 이메일을 입력합니다. 제출을 클릭합니다. 플래시가 나타납니다 [: 경고] : "잘못된 이메일 또는 비밀번호입니다."
1.2.1 : 세션 # 새 양식에 올바른 이메일과 잘못된 이메일을 입력합니다. 제출을 클릭합니다. 나는 경계하지 않는다.
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
뷰 : 나 '로 세션/new.html.erb 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
에서
<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>
어떤 도움을 주시면 감사하겠습니다 몇 달 동안이 업그레이드를 계속하고 싶습니다. 또한 플래시 메시지 이외의 모든 것이 업그레이드 후에 작동하고 있음을 지적하고자합니다.
해결책 :
제거 before_filter : sign_out_all_scopes