Членская система 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
дважды работает.