Ruby on rails 重定向前跟踪请求
该应用程序有很多测试,问题是只有经过身份验证的用户才能查看这些测试。所以,当没有的时候,应用程序会将他们重定向到sing_in/login_as_guest页面。例如,用户以来宾身份登录,然后我想将他们重定向到他们实际要访问的页面。 但我不知道从哪里开始,这可能吗?Ruby on rails 重定向前跟踪请求,ruby-on-rails,Ruby On Rails,该应用程序有很多测试,问题是只有经过身份验证的用户才能查看这些测试。所以,当没有的时候,应用程序会将他们重定向到sing_in/login_as_guest页面。例如,用户以来宾身份登录,然后我想将他们重定向到他们实际要访问的页面。 但我不知道从哪里开始,这可能吗? 你能给我一把从哪里开始的钥匙吗?第五章和第六章、第七章、第八章、第九章的结尾是你所需要的东西的分步指南 下面是一个例子: class UserController < ApplicationController def l
你能给我一把从哪里开始的钥匙吗?第五章和第六章、第七章、第八章、第九章的结尾是你所需要的东西的分步指南 下面是一个例子:
class UserController < ApplicationController
def login
if User.authenticate(params[:user][:email], params[:user][:password])
referer = params[:referer] || session[:referer] || request.referer
flash.notice = 'Login succeeded'
redirect_to referer || root_path
else
flash.alert = 'Login failed'
redirect_to user_login_path
end
end
end
class UserController
现在,当您想从某个地方重定向回某个位置时,只需向参数、会话或请求添加一个referer路径,它将在成功后重定向回该位置。好的,我找到了一个简单的解决方案,对我来说效果非常好。应用程序控制器:
if @current_permission.allow?(params[:controller], params[:action])
return true
else
redirect_to root_url
session[:was_going]=request.path #here I start session if request causes redirection
end
end
此方法返回该请求(如果存在)
def root_or_request
if session[:was_going]
path=session[:was_going]
session[:was_going] = nil
return path
else
return root_url
end
end
启动会话后,我只需调用此方法进行重定向。您使用的是什么测试框架和什么身份验证系统?是的,用户可以通过FB或电子邮件/密码进行身份验证,或者作为临时访客进行身份验证。否,朋友,仅给出5章很难是正确的答案