默认情况下,如何使用Devise将用户设为访客用户?

时间:2010-11-12 16:01:05

标签: ruby-on-rails authentication devise

如果用户未登录,我希望我网站的访问者拥有默认会话“访客用户”。我已在用户表中创建了访客用户,但如果用户如何为该用户启动会话没有登录。

我可以在ApplicationController中的过滤器之前使用:set_user:

class ApplicationController < ActionController::Base

  before_filter :set_user

  private

    def set_user
      current_user || # Initiate a session with Guest here. But how?
    end

 end

2 个答案:

答案 0 :(得分:2)

这就是诀窍:

sign_in(user)

我无法相信需要花多长时间来解决这个问题!

答案 1 :(得分:0)

要初始化current_user,只需创建一个新的User实例。您还可以在其中保存一些唯一标识符,您还可以将其保存在Cookie中,以便在用户回来时识别该用户。

例如:

current_user ||= User.find_or_create_by_session_id( some_session_id_from_cookie )