Проблемы с поиском текущего пользователя рельсов - PullRequest
0 голосов
/ 25 августа 2011

Я хочу найти current_user, который вошел в систему. Я использую этот метод в контроллере приложения:

def current_user
  @current_user ||= User.find(session[:user_id]) if session[:user_id]
end

Я могу получить доступ к current_user из метода show в моем контроллере, но в любом другом методе это ноль,Это странно, потому что раньше это работало, и теперь я не знаю, что я делал, но это больше не работает.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 24 января 2015

Учитывая ваш последний комментарий, ваша проблема связана только с сессией. Он не связан с определением вашего current_user метода.

По умолчанию приложение Rails 3 сбрасывает сеанс, когда в запросе HTTP POST нет токена аутентификации. Поведение немного отличается от Rails 4 (в зависимости от конфигурации), но у вас будет похожая проблема в конце.

Я полагаю, что ваши ajax-запросы не содержат токен аутентификации, отсюда и предупреждение WARNING: Can't verify CSRF token authenticity, отсюда и пустая сессия. При пустом сеансе метод current_user всегда будет возвращать nil, если только вы не находитесь внутри запроса GET и не выполнили ни одного запроса POST с момента аутентификации.

Я не пишу здесь решение, потому что оно не простое (это зависит от используемой вами структуры javascript) и не имеет связи с вашим исходным вопросом.

Вы должны прочитать ответ на этот вопрос: ВНИМАНИЕ: Не удается проверить рельсы аутентификации токена CSRF

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