最近アプリケーションを Rails 7 にアップグレードしましたが、以下のエラーが発生して一連のテストが失敗します。
ActionDispatch::Request::Session::DisabledSessionError: Your application has sessions disabled. To write to the session you must first configure a session store
これはデバイスと関係があるのではないかと疑っています。 以下は問題を引き起こしているコードです。
def login_user(user)
post "/api/v2/login", :params => { :username => user.username, :password => user.password }
assert_response :success, response.body
json = JSON.parse(response.body)
{:authentication_token => json["user"]["authentication_token"]}
end
application.rb ファイルから config.api_only = true という行を削除すると、テスト ケースは問題なく合格しますが、他の問題によりその行を実際には削除できません。誰かがこの問題に対する適切な解決策を持っていますか?
同様の質問を見つけました: Rails 7 API のみのアプリでは Devise を使用したセッション ストアが必要です
ここで、 config/application.rb に次の内容を追加することをお勧めします。
config.session_store :cookie_store, key: '_interslice_session'
config.middleware.use ActionDispatch::Cookies
config.middleware.use config.session_store, config.session_options
github のこの問題に基づいて