0

Deviseユーザーを手動で作成しようとしています。問題は、検証は、を呼び出したときにのみ合格するように見えることですUser.create

を呼び出すUser.newと、結果のユーザーインスタンスは無効になります。残念ながら、その理由はわかりません。

結果のエラーメッセージは、単に「検証に失敗しました:」です。

何が起こっているのか分かりますか?

保存する前にUser.create電話をかけたいので、使用したくないので、メールが送信されません。#skip_confirmation!

これをデバッグする方法はありますか?スタックトレースを調べてみましたが、うまくいきませんでした。

if user = User.create(params[:user])
  user.skip_confirmation!
  user.save!
  flash[:success] = "New user #{user.email} created."
  redirect_to user_root_path
else
  flash[:alert] = user.errors
  redirect_to user_root_path
end
4

3 に答える 3

0

パラメータ配列にパスワードを追加してみてください。

params[:user][:password] = Devise.friendly_token[0,20]

于 2013-02-16T01:15:22.657 に答える
0

これが機能する理由を説明することはできませんが、電話をかけるuser.confirm!前に電話をかけるとuser.skip_confirmation!問題が解決したようです。

于 2013-05-28T23:35:08.500 に答える
0

その値は常にtrueと答えるので、条件を変更します。dwhalenが言ったように。

于 2013-12-24T00:24:26.837 に答える