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