web-dev-qa-db-ja.com

Deviseを使用する場合、登録後にユーザーをリダイレクトするにはどうすればよいですか?

Rails 2.3とDeviseを使用して、ユーザーの登録/認証を処理しています。

ユーザーがアカウントにサインアップした直後に、ユーザーを外部のサードパーティのWebサイトにリダイレクトする必要があります。コードとオンラインを調べていますが、これを行う方法がわかりません。

ユーザーをリダイレクトするようにデバイスフローを変更するにはどうすればよいですか?

22
Jason

アプリケーションコントローラーに追加します

  # Devise: Where to redirect users once they have logged in
  def after_sign_up_path_for(resource)
    "http://www.google.com" # <- Path you want to redirect the user to.
  end

使用できるDeviseヘルパーのリストは次のとおりです http://rdoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers

それがお役に立てば幸いです=)

28

correct」の回答としてリストされている回答は、特にsign_inの後を指します... sign_upの後にユーザーをリダイレクトする場合は、以下:

def after_sign_up_path_for(resource)
  "http://www.google.com" # <- Path you want to redirect the user to after signup
end

詳細については、 wiki を参照してください。

53
Brett Hardin

Deviseの確認を使用している場合(つまり、ユーザーがサインアップした直後にアクティブ化されない場合)、after_inactive_sign_up_path_forメソッドを上書きする必要があります。

# controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
  def after_inactive_sign_up_path_for(resource)
    "http://somewhere.com"
  end
end

必ず、RegistrationsControllerを使用するようにdeviseに指示してください。

# config/routes.rb
devise_for :users, :controllers => {:registrations => 'registrations'}
18
declan