Rubyコンソールからdeviseを使用して新しいUserオブジェクトを作成および保存する方法についてのアイデアはありますか?
保存しようとすると、常にfalseになります。何かが足りないと思いますが、関連する情報を見つけることができません。
必要に応じて、saveメソッドにfalseを追加して、検証をスキップできます。
User.new({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)
そうでなければ私はこれをするだろう
User.create!({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })
confirmable
モジュールを有効にしている場合は、作成中にconfirmed_at
値をTime.now
などの値に設定していることを確認してください。
を使用してこれを行うことができるはずです
u = User.new(:email => "[email protected]", :password => 'password', :password_confirmation => 'password')
u.save
これがfalseを返す場合、呼び出すことができます
u.errors
何が間違っているのかを見るために。
モデルに:confirmableオプションがある場合、これはオブジェクトユーザーが最初に確認する必要があることを意味します。ユーザーを保存するには2つの方法があります。
a。最初はスキップ確認です:
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save
b。または、確認を使用してください! :
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save
確認メールの送信を避けるにしたい場合、最良の選択は次のとおりです。
u = User.new({
email: '[email protected]',
password: '12feijaocomarroz',
password_confirmation: '12feijaocomarroz'
})
u.confirm
u.save
したがって、偽のメールを使用している場合、またはインターネットに接続していない場合は、エラーを回避できます。
上記の答えはどれも私にとってはうまくいきませんでした。
これは私がやったことです:
User.create(email: "[email protected]", password: "asdasd", password_confirmation: "asdasd")
パスワードは6文字より大きくする必要があることに注意してください。