Я подталкиваю свое приложение к герою, и кажется, что пользовательский вход не сохраняется. Я думаю, что это потому, что у меня есть пользовательское имя_потока, которое я использую для извлечения пользователя в сеансах, но оно просто не сохраняется.Rails, пользователь remember_token не сохраняется?
В моей модели пользователя у меня есть
before_save :create_remember_token
и это метод, определенный
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
Но когда я создаю модели в консоли, я получаю remember_token: ноль даже после сохранения.
Мой знак в методе в моем sessionshelper и он работает как этот
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
def sign_out
current_user.update_attribute(:remember_token,
User.encrypt(User.new_remember_token))
cookies.delete(:remember_token)
self.current_user = nil
end
Я новичок в рельсах и Heroku поэтому любые идеи к проблеме была бы оценена!
Одна ошибка, которую я могу заметить, заключается в том, что вы меняете 'remember_token' каждый раз, когда пользователь сохраняется, но значение cookie не обновляется. Вам не нужно изменять атрибут, отличный от входа/выхода. Также обратите внимание, что в этом коде 'remember_token' передается в ясном тексте, что небезопасно. –