使用Devise开发Ruby on Rails应用程序。
Devise仅重定向到固定路径,默认情况下是根应用程序路径。有受保护的urls,如果用户单击某些链接(例如"Ask Question“此处),他将被发送到/sign_in页面。成功登录后,用户不会返回到"Ask rather“,而是返回到"/”。你知道怎么解决这个问题吗?
发布于 2011-11-07 09:05:58
使用原始的请求GET而不是POST解决了这个问题。最初重定向到POST是错误的。不幸的是,如果用户试图更新任何数据,他将被迫重新输入和重新提交,这里的解决方案是禁止用户输入任何如果他们没有登录就无法提交的数据。
发布于 2011-05-15 07:13:44
这就是我正在使用的。它可以工作;)
class ApplicationController < ActionController::Base
protect_from_forgery
def after_sign_in_path_for(resource)
if resource.is_a?(User)
"/welcome"
else
super
end
end
end
发布于 2011-01-22 03:21:47
您必须将url保存在您的会话哈希中,才能使其正常工作。
session[:return_to] ||= request.referer
然后在成功保存后,在更新操作中重定向到它:
redirect_to session[:return_to]
https://stackoverflow.com/questions/4765536
复制相似问题