Как сделать пользователя гостевым пользователем по умолчанию в Devise? - PullRequest
0 голосов
/ 12 ноября 2010

Я хочу, чтобы посетители моего сайта имели сеанс по умолчанию «Гость», если они не вошли в систему. Я создал Гость в своей таблице пользователей, но как мне инициировать сеанс для этого пользователя, если пользователь не вошел в систему.

Я мог бы иметь: set_user перед фильтром в ApplicationController:

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 ]

2 голосов
/ 14 ноября 2010

Это делает трюк:

sign_in(user)

Я не могу поверить, сколько времени понадобилось, чтобы понять это!

0 голосов
/ 12 ноября 2010

Чтобы инициализировать current_user, просто создайте новый экземпляр пользователя. Вы также можете сохранить в нем некоторый уникальный идентификатор, который вы также сохраните в файле cookie, чтобы распознать пользователя, когда он возвращается.

Например:

current_user ||= User.find_or_create_by_session_id( some_session_id_from_cookie )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...