我试图在用户使用Devise登录后找出设置会话变量的位置。我找到了这篇文章(和其他人):
Set a session variable in devise on sign in
所以我尝试过这样的事情:
protected
# when a user logs in
def after_sign_in_path_for(resource_or_scope)
session[:current_account_id] = current_user.accounts.find_by_is_default(true).id # get id of row where it's is_default is set as true
abort(session[:current_account_id])
end
..但没有快乐。我不想做另一种重定向(因为链接中的问题是询问),只需在用户登录时设置一个会话变量,所以我不确定这是否是我想要的回调。此外,我可能有我的find_by_方法错误,但我希望我可以调试(使用abort)一旦脚本到达那么远 - 但它似乎并不像中止似乎没有被调用。任何帮助非常感谢。感谢
答案 0 :(得分:0)
确保受保护的方法位于ApplicationController内部。