Как установить current_user, даже если пользователь не вошел в систему? - Рельсы 3 - PullRequest
15 голосов
/ 08 мая 2011

Я использую Devise для аутентификации, и когда кто-то посещает определенный URL (с определенными параметрами в URL), я хотел бы установить для current_user определенное значение из базы данных.

Какмне делать это?

Кроме того, я должен буду удостовериться, что все требования проверки удовлетворены?Например, моя пользовательская модель имеет:

validates_presence_of :username, :email

Если я установлю current_user, придется ли мне устанавливать оба: username &: email, или я могу просто сделать одно или другое?

Ответы [ 2 ]

22 голосов
/ 08 мая 2011

Вы можете попробовать

@user = User.where(:x => "y").first # Find the user depending on the params
sign_in(@user)
# do work
sign_out(@user)

Я не знаю, является ли это лучшим способом сделать это, но он установит current_user.

5 голосов
/ 04 мая 2012
Помощник

devise current_user устанавливает переменную экземпляра @current_user, делая это так:

@current_user = User.first

также установит current_user для выбранного пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...