2016-12-28 3 views
0

У меня есть user моделиDataMapper не могу обновить пароль маркера

class User 
    include Datamapper::Resource 

    property :id, Serial 
    property :password_token, String 

    def generate_token 
    self.password_token = SecureRandom.hex 
    self.save 
    end 
end 

и этот контроллер маршрут:

post '/users/token_sent' do 
user = User.first(email: params[:email]) 
    if user 
    user.generate_token 
    end 
redirect('index') 
end 

Я хотел бы password_token свойства быть изменен к экземпляру SecureRandom.hex, когда пользователь заполняет электронное письмо для восстановления пароля с почтового маршрута.

Метод не обновляет password_token в базе данных пользователей.

ответ

0

В этом методе:

def generate_token 
    self.password_token = SecureRandom.hex 
    self.save 
    end 

Вы звоните self.save, который не гарантирован успех.

Если вы хотите узнать, почему это не удалось сэкономить, вместо этого используйте save!.

+0

Да, это решило проблему, спасибо! –

Смежные вопросы