Ruby on rails 设计重定向:查看页面A->;注册/登录->;重定向回A页

Ruby on rails 设计重定向:查看页面A->;注册/登录->;重定向回A页,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我正试图弄清楚如何让用户在通过Desive注册或登录网站后返回到原始页面 例如:用户正在查看清单A。用户单击“注册”,成功注册(无确认)。但是它们没有被重定向回根目录,而是返回到清单A 我曾经通过在会话中存储原始URL,然后在成功登录时重定向到存储的URL,或者如果该URL为空,则继续到默认页面来实现这一点 我可以用Desive做同样的事情吗,或者有没有更好的方法来实现同样的事情 答案 在绞尽脑汁几个小时后,我又发布了一个问题,在我提交问题后,它几乎立刻击中了我。我是这样做的: 在我的应用程序控

我正试图弄清楚如何让用户在通过Desive注册或登录网站后返回到原始页面

例如:用户正在查看清单A。用户单击“注册”,成功注册(无确认)。但是它们没有被重定向回根目录,而是返回到清单A

我曾经通过在会话中存储原始URL,然后在成功登录时重定向到存储的URL,或者如果该URL为空,则继续到默认页面来实现这一点

我可以用Desive做同样的事情吗,或者有没有更好的方法来实现同样的事情

答案

在绞尽脑汁几个小时后,我又发布了一个问题,在我提交问题后,它几乎立刻击中了我。我是这样做的:

在我的应用程序控制器中,我嗅探以查看URL中是否有返回参数。如果有,我会在会话中设置

然后,我在应用程序控制器的应用程序路径中对进行签名后覆盖,以重定向到存储的会话值或根路径

以下是我的应用程序_controller.rb的(相关部分):

class ApplicationController < ActionController::Base

  before_filter :check_for_manual_return

  def check_for_manual_return
    session[:return_to] = params[:return_to] if !params[:return_to].nil?  
  end

  def after_sign_in_path_for(resource)
    return session[:return_to] || root_path
  end   
end
class ApplicationController