应用程序有很多测试,问题是只有经过身份验证的用户才能查看它们。所以当没有时,app会将它们重定向到sing_in / login_as_guest页面。例如,用户在进行访问或以访客身份登录,之后我想将它们重定向到他们实际要访问的页面。 但我不知道从哪里开始,这可能吗? 能不能给我一把钥匙从哪里开始?r
答案 0 :(得分:0)
第5章的结尾和第6,7,8,9章是您需要的一步一步指导 rails tutorial
答案 1 :(得分:0)
以下是一个例子:
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
现在,当您想从某个地方重定向时,只需将参考路径添加到参数,会话或请求中,它将在成功时重定向。
答案 2 :(得分:0)
好的,我找到了简单的解决方案,对我来说效果很好。应用程序控制器:
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
并且在开始会话之后我只需重定向并调用此方法。