authlogic を使用してユーザーを認証します。私のコントローラーでは、次のように (文書化されているように) 定義された current_user を使用します。
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
また、declarative_authorization を使用して現在のユーザーの権限を管理しています。通常のランタイム シナリオではすべて正常に動作しますが、" get_with" などの要求ステートメントを使用する機能テストを作成すると、コントローラーの current_user が nil になります。declarative_authorization テスト ヘルパー コードを調べたところ、このシナリオでは、declarative_authorization gem が実際に現在のユーザーを Authorization.current_user (Thread.current["current_user"] から取得) に格納していることがわかりました。そのため、現在のユーザーがさまざまなシナリオでどのように処理されるかについて、かなりの混乱があるようです。
私の質問: 通常のランタイムとテスト シナリオの両方で current_user を見つける適切な方法は何ですか?