2013-03-15 84 views
0

我在Heroku上运行rails应用程序,并在用户尝试重置密码时遇到问题。我的用户模型validates_uniqueness_of :email和方法重置其密码是Heroku上的Rails应用程序验证错误

def send_password_reset 
    generate_token(:password_reset_token) 
    self.password_reset_sent_at = Time.zone.now 
    save! 
    UserMailer.password_reset(self).deliver 
end 

当我检查heroku logs它告诉我,save!正在生成ActiveRecord::RecordInvalid (Validation failed: Email has already been taken),但我不是创建一个新的用户,甚至修改当前用户的邮件字段。
当我在本地运行它时,一切正常,没有错误。

回答

0

检查数据库中是否有多个用户使用同一电子邮件。

可能是在添加验证之前创建了副本。

+0

这正是我所做的。在添加验证之前,我使用相同的电子邮件添加了几个用户。谢谢 – robertjlooby 2013-03-15 15:39:44

0

查看您的Db,使用heroku run console连接到您的应用程序的控制台,并查看User.all的输出以查看它是否在那里。这不会是你在Heroku上运行这个导致这个错误的事实。