LoginSignup
12

More than 5 years have passed since last update.

Rails で Session Store が使えないと思ったら rails-api が原因だった

Posted at

Rails で JSON の API を提供しつつ、サーバーサイドレンダリングもするアプリケーションを作っていたのですが、ユーザ管理をしようと思ったところで、session[:user_id] = user.idのようにいつもどおりユーザ情報をSessionで管理しようと思ったら、どうも Session が上手く使えてない模様。
config周りを見ても

config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: '_app_session'

としっかり設定されているし、なんで使えないんだろうと思ったら rails-api の gem が悪さをしていたみたいです。
rails-api の README をみると

Session Management: If a config.session_store is supplied and config.api_only = false, this middleware makes the session available as the session method in ActionController.

と書いてあり、

config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: '_app_session'
Rails.application.config.api_only = false

としてあげる必要がありました。

rails-api を使って API を提供しつつ、サーバーサイドレンダリングもするアプリケーションを作ろうとするときには要注意ですね。。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12