概要
Rails6 で API モードを使って開発する場合にセッションやクッキーを使うことができるよう設定する方法を書いています。
いちばん簡単な方法
いろいろと設定を書き加えるのが面倒だという場合には config/application.rb
を開いて 1 行書き換えるだけでできます。
class Application < Rails::Application
# ...
config.api_only = false
end
このようにすればセッションとクッキーのミドルウェアを読み込むようになり、使うこともできるようになります。
ですが、このやり方ではこの他にも views や assets などの API では使うことのないミドルウェアも一緒に読み込んでしまうようになります。
よって以下ではクッキーとセッションのみ読み込む方法を示します。
ミドルウェアの読み込み
さきほどと同じように config/application.rb
を開き、以下のように追記します。
class Application < Rails::Application
# ...
config.api_only = true
# この2行を追加する
config.middleware.use ActionDispatch::Cookies
config.middleware.use ActionDispatch::Session::CookieStore
end
コントローラーでのインクルード
そして、読み込んだミドルウェアをコントローラーで使用できるようにします。
app/controllers/application_controller.rb
を開いて ActionController::Cookies
をインクルードします。
class ApplicationController < ActionController::API
include ActionController::Cookies
# ...
end
これで完了です。