升级到rails 7后获得ActionDispatch::Request::Session::DisabledSessionError

gk7wooem  于 2022-10-15  发布在  Ruby
关注(0)|答案(1)|浏览(164)

我最近将我的应用程序升级到了rails 7,现在我的许多测试都失败了,出现了下面的错误。

ActionDispatch::Request::Session::DisabledSessionError: Your application has sessions disabled. To write to the session you must first configure a session store

我怀疑这与devise有关。以下是导致问题的代码。

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行,则测试用例将顺利通过,但由于其他问题,我无法真正删除该行。有人能为这个问题找到合适的解决方案吗?

jtw3ybtb

jtw3ybtb1#

我发现了一个类似的问题:Rails 7 API only app requiring session store with 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上的此问题

相关问题