Членская система RailsTutorial -cookie отличается от токена запоминания в базе данных

Прежде всего: я уже пробовал гуглить это в нескольких терминах: "запомните токен, отличный от рельсов печенья", "current_user nil:nilClass", "Remember_token не работает рельсы" и "current_user is nil rails" (вы, вероятно, можете видеть У меня есть две разные проблемы, но я думаю, что одна вызвана другой). Этот вопрос, этот и этот не ответили на мою проблему; Есть множество других, которые этого не сделали.

Когда я пытаюсь зарегистрировать нового пользователя, я получаю сообщение об ошибке "NoMethodError: неопределенный метод name для nil: nilClass" после его прохождения. Теперь пользователь создается, но не входит в систему. remember_token атрибут в базе данных не совпадает (и также длиннее) remember_token печенье. Когда я пытаюсь войти в систему, появляется флеш с сообщением "Вы должны войти, чтобы сделать это" (сообщение, которое я установил для ограниченного доступа), и меня перенаправляют на /login страница снова. Самое последнее, что я сделал, это добавил terms_of_service флажок и подтверждение для него; Я удалил это, и проблема сохраняется.

Вы можете увидеть мой код здесь.

Маркер запоминания cookie: EEBlz7wM_-9jo-YQ47D8-g
Перегруженный файл cookie запоминает токен: 7c96d144956bbbaa6294137555a709b0cfefdd1d
И, наконец, токен запоминания в базе данных (уже переваренный): ddebfafb628ab141a6db84d42fb13355fad83fb1

Я знаю, что об этом много говорят, но я пытался понять это в течение нескольких часов.

1 ответ

Решение

Не берите в голову это - сделал это самостоятельно. Оказалось, что я использовал before_save вместо before_create со всем :create_remember_token вещь. Как-то не пользуясь update_attributes починил это; update_attribute дважды работает.

Другие вопросы по тегам