Deviseでユーザー確認をスキップする方法

Deviseでユーザー登録をさせたい場合に、ユーザー登録メールを送信してごにょごにょみたいなことをしたいのだけれど、まだそこは置いといて、とりあえずシードでユーザーをDBに投入したところ、ログイン画面でログインしようとしたところ、「本登録してください」と怒られた。

本登録処理をするにはメールを受けないと無理じゃないか?
どうすればいいんだろうか?と思ったらちゃんとskip_confirmation!というメソッドがあった。
それを使えばよい。

user = User.create!(
  :email => "hoge@email.com",
  :password => "hogehoge"
)
user.skip_confirmation!

これでいけるんだろうと思っていたら、ダメだった。
なんとuser.saveしないといけないと。skip_confirmation!っていう破壊的な感じがするから保存もしてくれるんだと思ったらしてくれないなんてびっくりだ!

user = User.create!(
  :email => "hoge@email.com",
  :password => "hogehoge"
)
user.skip_confirmation!
user.save!

これでよい。


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

コメントを残す

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