2010-12-29 12 views
0

長年の登録プロセスを含む新しいアプリを構築しました。私たちはRails 3を使用しています。Rails 3 app with Devise既存のユーザーを読み込んでいます

これで、古いシステムから多数の既存ユーザーをインポートする必要があります。プロセスをテストするためにこれを手動で実行する必要があります。

問題は、これらのユーザーに確認メールを送信したくないということです。

電子メールを抑制し、手動で登録プロセスを完了するにはどうすればよいですか?ユーザーが作成する上で確認に設定されている場合、それはすべての電子メールを送信しませんかのようにconfirmableソースコードを見てみるとドム

答えて

1

は、それはそうです。

まず、新しく作成したユーザーに電子メールを送信するかどうかを決定する必要があります。私は、フォームにチェックボックスを追加する、あるいは古いユーザーテーブルに対する電子メールアドレスを相互参照をお勧めしたい:

def create 
    # Form style 
    skip_email? = params[:user].delete(:skip_email) 

    # Old users style 
    skip_email? = !!OldUser.find_by_email(params[:user][:email]) 

    @user = User.new(params[:user]) 
    ... 
end 

は、次の2つのいずれかを行ってきたと仮定すると、あなたはのブール値を持っていますskip_email?。今、あなたは行うことができます。

def create 
    skip_email? = true # See above 

    @user = User.new(params[:user]) 
    @user.skip_confirmation! 

    if @user.save 
    ... 
    end 
end 

skip_confirmation!は工夫がUserモデルに追加するメソッドです。 Deviseソースコードhereが見つかります。

関連する問題