我正在寻找一种允许用户使用的解决方案:
我一直在为我的应用程序使用Devise似乎已经碰壁,因为设备总是在登录后路由到root_path。我试过了:
def after_sign_in_path_for(resource)
session[:return_to] || root_path
end
但这不起作用,因为会话[:return_to]似乎没有设置。
任何人都可以通过Devise了解最佳方法 - 或者建议一种允许此类操作的替代身份验证解决方案。感谢
答案 0 :(得分:3)
您是否手动设置会话[:return_to]变量?尝试将此添加到ApplicationController
before_filter :get_referrer, :except => [:create, :update, :destroy]
def get_referrer
session[:return_to] = request.referrer
end
或者,如果您希望对哪些页面实际设置return_to会话变量进行更精细的控制,则可以在每个控制器中设置return_to会话变量。
答案 1 :(得分:0)
您应该尝试覆盖application_controller.rb中的after_sign_in_path_for(resource)
,如下所示:
private
def after_sign_in_path_for(resource)
stored_location_for(resource) || default
end
答案 2 :(得分:0)
Google快速搜索引导我this link。似乎最近,它至少应该指明你的方向,如果不解决你的问题。
答案 3 :(得分:0)
登录后您可以这样做:
redirect_to request.referer.blank? ? root_path : :back
无需在会话中存储引用。