了解用户的来源:request.referer无法正常工作

时间:2014-04-03 21:33:25

标签: ruby-on-rails ruby-on-rails-4 http-headers rails-routing

当用户在未登录时访问某个页面时,会将其重定向回我的登录页面。

def authenticate_user!
  redirect_to new_user_path unless current_user
end

然后在我的用户控制器中

class UsersController < ApplicationController
  skip_before_filter :authenticate_user!, only: [:new, :create]

  def new
    puts request.referer          #=> nil
    puts request.referrer         #=> nil
    puts request["HTTP_REFERER"]  #=> nil
    puts request["HTTP_REFERRER"] #=> nil
    ...
  end
end

当转到另一个页面时,我从referrer变量中得不到任何内容(但它正确地重定向到/users/new)。即使直接导航到/users/new页面,我也无法获得任何变量。我如何得到他们来自的路径?我已经看过使用以下代码的示例,但referrer不应该是nil

previous = Rails.application.routes.recognize_path(request.referer)

0 个答案:

没有答案