我安装了设备并且它正常工作但登录重定向。当用户从任何应用页面登录时,Devise会将用户重定向到主页,而不是在同一页面上重定向。我尝试实现How_to解决方案但没有帮助。
我在application_controller中写道:
def after_sign_in_path_for(resource)
current_user_path
end
但它给出了错误:
undefined local variable or method `current_user_path' for #<Devise::SessionsController:0xaeacc34>
我写的时候:
def after_sign_in_path_for(resource)
current_user_path
end
它给出了:
undefined method `user_url'
这个问题的解决方案是什么?任何人都可以帮忙吗?
答案 0 :(得分:1)
您需要重定向到其他scenerio(错误或成功)的其他地方吗?通常在用户成功登录后使用after_sign_in_path_for。 SO:
如果您没有覆盖设计默认功能,则使用下面的代码将导航控制转到特定的自定义页面。此操作也可以访问current_user
。
def after_sign_in_path_for(resource)
scope = Devise::Mapping.find_scope!(resource)
scope_path = :"#{scope}_root_path"
respond_to?(scope_path, true) ? send(scope_path) : root_url
end
更新: 另一个例子如下:
def after_sign_in_path_for(resource_or_scope)
current_user.admin? ? dashboard_admin_home_index_path : current_user.sign_in_count >= 1 ? "/home/dashboard" : "/#{current_user.role}/dashboard"
end
答案 1 :(得分:1)
您可以使用request.referer
def after_sign_in_path_for(resource_or_scope)
request.referer
end