Rails检测用户是否第一次访问

Dex*_*Dex 7 session ruby-on-rails

我试图让用户填写问卷,如果这是他们第一次访问该网站.

我的控制器设置如下:

class MainController < BaseController
end

class BaseController < ApplicationController
  before_filter :first_time_visiting?
end

class ApplicationController < ActionController::Base
  def first_time_visiting?
    if session[:first_time].nil?
      session[:first_time] = 1
      redirect_to questionnaire_path unless current_user
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当我关闭浏览器并重新打开它时,我总是被重定向到调查问卷.

Pee*_*lan 6

您必须在浏览器中为该用户设置一个cookie,以便以后允许检测,即在用户关闭浏览器之后.在rails中设置和读取cookie很容易.查看文档以获取一些示例用法.http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html