以下の Rails コードの一部を理解しようとしていますが、ApplicationController が必要とするモジュールで定義されたメソッド内で、ヘッダーの属性を持つリクエスト オブジェクトがどのように表示されるかわかりません。
関連するコード:
controllers/application_controller.rb 内
class ApplicationController < ActionController::Base
...
include Authenticable
...
end
controllers/concerns/authenticable.rb で
module Authenticable
def current_user
@current_user = User.find_by( auth_token: request.headers['Authorization'])
end
controllers/my_controller.rb 内
class MyController < ApplicationController
...
def some_action
user = current_user
...
end
...
end
私が (現在) 知る限り、リクエスト オブジェクト インスタンスは Rack によって作成され、Router によって MyController オブジェクトに渡されます。正しい?
この MyController オブジェクトは ApplicationController から派生しているため、そのプロパティを継承します。その反対は正しくありません。ApplicationController は MyController プロパティにアクセスできません。正しい?
ApplicationController がモジュールを必要とする場合、モジュール内のメソッドによってそのプロパティを展開します。したがって、これらの「必要な」メソッドは MyController プロパティ (現在の場合は request オブジェクト) にアクセスできません。正しい?
モジュール Authenticable 内のメソッド current_user が request.headers['Authorization'] にアクセスできるように、どこで失敗していますか?
ありがとう