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 に答える