Установка переменной класса для поиска текущего пользователя - PullRequest
0 голосов
/ 06 ноября 2010

Мне нужно найти текущего авторизованного пользователя в моей модели.

Я определил cattr_accessor current_logged_in в User модели.

Теперь, когда пользователь входит в систему, я устанавливаю User.current_logged_in = current_user.id.

Позже, в других моделях я обращаюсь к переменной, используя User.current_logged_in_user.На данный момент это работает.

Это правильный способ реализовать это?

1 Ответ

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

Хороший способ реализовать его, если только вы не выполняете свой код в качестве учебного упражнения, это использовать плагин, такой как devise .

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

def can_delete_item(user)
  if user.is_admin?
    ....
  else
    .....
  end
    .....
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...