Учитывая ваш последний комментарий, ваша проблема связана только с сессией. Он не связан с определением вашего current_user
метода.
По умолчанию приложение Rails 3 сбрасывает сеанс, когда в запросе HTTP POST нет токена аутентификации. Поведение немного отличается от Rails 4 (в зависимости от конфигурации), но у вас будет похожая проблема в конце.
Я полагаю, что ваши ajax-запросы не содержат токен аутентификации, отсюда и предупреждение WARNING: Can't verify CSRF token authenticity
, отсюда и пустая сессия. При пустом сеансе метод current_user
всегда будет возвращать nil
, если только вы не находитесь внутри запроса GET и не выполнили ни одного запроса POST с момента аутентификации.
Я не пишу здесь решение, потому что оно не простое (это зависит от используемой вами структуры javascript) и не имеет связи с вашим исходным вопросом.
Вы должны прочитать ответ на этот вопрос: ВНИМАНИЕ: Не удается проверить рельсы аутентификации токена CSRF