deviseとacts_as_paranoidの組み合わせでハマった

deviseとacts_as_paranoidを使ってユーザーの登録と退会処理をしていたら、退会済みのユーザーのメールアドレスで再度登録できないという事態になった。

ググりまくった結果、config/initializers/devise.rbの
config.authentication_key = :email になっているから、
Userモデルのほうでvalidatableがあると、emailでユニークかどうかのチェックが走ってしまうようだということがわかった。

なので、validatableの記述を削除したら、うまく動き出した。
validatableを使わない場合は、自力で検証を書かないといけないので、
validates_uniqueness_of_without_deleted :email
は必須!!(自分の環境では)。


カテゴリー Ruby, Ruby on Rails | タグ   | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です