0

我在 Heroku 上运行 Rails 应用程序,当用户尝试重置密码时遇到问题。我的用户模型有validates_uniqueness_of :email并且重置密码的方法是

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),但是我没有创建新用户,甚至没有编辑当前用户的电子邮件字段。
当我在本地运行它时,一切正常,没有错误。

4

2 回答 2

0

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

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

于 2013-03-15T15:25:48.490 回答
0

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

于 2013-03-15T15:26:51.520 回答