14

私はdevise gemを使用していますが、ユーザーの作成中に確認をスキップしたいです! たとえば、確認メールをスキップします。

User.create(:first_name => "vidur", :last_name => "punj").confirm!.skip_confirmation!

ただし、確認のみをスキップし、確認メールの送信をスキップしません。両方をスキップするアイデアを誰かに教えてもらえますか。

4

7 に答える 7

28

skip_confirmation を呼び出す必要があります。レコードを保存する前に。

試す

user = User.new(:first_name => "blah")
user.skip_confirmation!
user.save
于 2012-12-11T10:43:27.607 に答える
5
Got the solution:
 @user=User.new(:first_name => "vidur", :last_name => "punj")
 @user.skip_confirmation!
 @user.confirm!
 @user.save
于 2012-12-11T10:56:24.353 に答える
5

skip_confirmation! の前に User.create を呼び出しています。後で User.new と user.save を呼び出す必要があります。

試す

  user = User.new(:first_name => "vidur", :last_name => "punj")
  user.skip_confirmation!
  user.save! 
于 2012-12-11T10:43:56.860 に答える
4

Confirmed_at フィールドを設定する

User.create!(confirmed_at: Time.now, email: 'test@example.com', ...)

Seeds.rb で便利

User.create_with(name: "Mr T", company: "Comp X", password: 'rubyrubyruby', password_confirmation: 'rubyrubyruby', confirmed_at: Time.now).find_or_create_by!( email: 'test@example.com')
于 2014-08-10T14:05:25.580 に答える
4

skip_confirmation!デバイスコントローラーをまだ生成していないため、コントローラーのどこにメソッドを書き込むべきか混乱している場合は、次のようにします。

Userこれをモデルに書きます

before_create :my_method

def my_method
 self.skip_confirmation!
end

今すぐ使用してください:

user = User.new(:first_name => "Gagan")
user.save
于 2015-04-17T09:44:19.177 に答える
2

確認がまったく必要ない場合は:confirmable、モデルのシンボルを削除できます。

于 2012-12-11T10:44:42.247 に答える