Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 重定向前跟踪请求_Ruby On Rails - Fatal编程技术网

Ruby on rails 重定向前跟踪请求

Ruby on rails 重定向前跟踪请求,ruby-on-rails,Ruby On Rails,该应用程序有很多测试,问题是只有经过身份验证的用户才能查看这些测试。所以,当没有的时候,应用程序会将他们重定向到sing_in/login_as_guest页面。例如,用户以来宾身份登录,然后我想将他们重定向到他们实际要访问的页面。 但我不知道从哪里开始,这可能吗? 你能给我一把从哪里开始的钥匙吗?第五章和第六章、第七章、第八章、第九章的结尾是你所需要的东西的分步指南 下面是一个例子: class UserController < ApplicationController def l

该应用程序有很多测试,问题是只有经过身份验证的用户才能查看这些测试。所以,当没有的时候,应用程序会将他们重定向到sing_in/login_as_guest页面。例如,用户以来宾身份登录,然后我想将他们重定向到他们实际要访问的页面。 但我不知道从哪里开始,这可能吗?
你能给我一把从哪里开始的钥匙吗?第五章和第六章、第七章、第八章、第九章的结尾是你所需要的东西的分步指南 下面是一个例子:

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章很难是正确的答案