Ruby on rails 3 将_重定向到存储在变量中的路径未完成

Ruby on rails 3 将_重定向到存储在变量中的路径未完成,ruby-on-rails-3,Ruby On Rails 3,我正在从几个地方检查服务条款是否被接受。如果没有,用户应该被重定向到服务条款,然后返回到他们要去的地方。我不想通过解释我为什么不使用'request.referer'来使这个问题复杂化 我正在做的是使用session[:return\u to]=返回到的路径。所以在一个控制器中,我有: def index if current_user.tos_at.nil? session[:return_to] = 'answers path' redirect_to terms_of_

我正在从几个地方检查服务条款是否被接受。如果没有,用户应该被重定向到服务条款,然后返回到他们要去的地方。我不想通过解释我为什么不使用'request.referer'来使这个问题复杂化

我正在做的是使用session[:return\u to]=返回到的路径。所以在一个控制器中,我有:

def index
  if current_user.tos_at.nil?
    session[:return_to] = 'answers path'
    redirect_to terms_of_service_controller_index_path
  end
  ...
end
然后,在显示服务条款并用户单击accept(接受)后,流程将定向到:

def接受服务条款 当前用户。更新属性(:tos\u at=>Time.now) 重定向到会话[:返回到] 结束

然后我得到:

"You are being redirected."
在浏览器中打印后,什么也不会发生。如果我将重定向更改为:

redirect_to answers_path
它重定向到正确的路径


感谢您的帮助。

正确分配会话[:return\u to]:

session[:return_to] = answers_path
answers\u path是一个帮助程序,因此当您将session[:return\u to]分配给类似“answers\u path”的值时,它试图重定向到位于“answers\u path”中的页面

第二种方法不是修改会话[:return_to]assign,而是替换

redirect_to session[:return_to] 


谢谢,@Hck。这太完美了。
redirect_to send(session[:return_to])