ActionControllerセッションとサブクラス
-
30-10-2019 - |
質問
デフォルトでは、すべてのRailsコントローラーがアプリケーションコントローラーを継承します。
私のアプリケーションでは、ユーザーがHTTP-Basic Authを使用して任意のページから認証できるようにし、投稿して認証できるようにしてください。
現在、物事はこのように見えます(単純化されています):
class ApplicationController < ActionController::Base
before_filter :set_current_user
private
def set_current_user
Authorization.current_user = current_user
end
def current_user
if session[:user].blank?
authenticate_or_request_with_http_basic do |user,pass|
session[:user] = authenticated_user_or_nil
end
end
session[:user]
end
end
class UserSessionsController < ApplicationController
prepend_before_filter :set_user_from_params
private
def set_user_from_params
session[:user] = authenticated_user_or_nil
end
end
両方にブレークポイントを設定します set_user_from_params
と set_current_user
そして、彼らが実際に正しい順序で呼ばれていることを確認しました。
set_user_from_params
実際に設定しています session[:user]
正しく、しかし、私が続けて内部のブレークポイントを押したとき set_current_user
セッションハッシュは空です!?
これは意図された行動ですか、それとも私は本当に明白なものを逃しましたか?
正しい解決策はありません
所属していません StackOverflow