我正在构建一个带有两个非常独立的模型的应用程序,两者都使用设计版本.一旦您作为房屋登记,房屋中的每个人都可以作为该房屋的居民登录.除了当我使用常规会话退出时,一切正常
destroy_resident_session
唯一的问题是它自从打电话以来也杀死了家庭会议
Devise::SessionsController#destroy
我试图为居民创建一个自定义会话,这是我的代码如下:
class SessionsController < Devise::SessionsController
# DELETE /resource/sign_out
def destroy
redirect_path = after_sign_out_path_for(resource_name)
signed_out = sign_out(resident)
set_flash_message :notice, :signed_out if signed_out && is_navigational_format?
# We actually need to hardcode this as Rails default responder doesn't
# support returning empty response on GET request
respond_to do |format|
format.all { head :no_content }
format.any(*navigational_formats) { redirect_to redirect_path }
end
end
end
这给出了一个错误:
undefined local variable or method `resident'
我可能误解了方法逻辑,但似乎我想在设计会话控制器中更改以下行:
signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
因为我不想退出所有范围,只有常驻范围.
解决了
所有我必须做的就是设定
config.sign_out_all_scopes = false
在
config/devise.rb
而且,不得不记得重新启动我的服务器:)
最佳答案 这应该标记为答案.你没有发布它,但我有同样的问题,这是解决方案,所以我发布它为社区
配置/ devise.rb
config.sign_out_all_scopes = false