1

私はDevise gemを使用しています。に設定されていませんが:confirmable、ユーザーが登録プロセスの直後に自動的にログインしないようにしたいです。何らかの理由で、彼らは自動的にログインするようになりましたが、これは私が望むものとは正反対です。

では、どうすればいいですか?

4

2 に答える 2

2

https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-up-(登録)

基本的には、上記の手順に従ってください。after_sign_up_path_for メソッドで、呼び出すことができます

sign_out resource

次に、移動先のページ (おそらくルートまたはログイン ページ) にリダイレクトします。

ユーザーは、devise によって呼び出される sign_up メソッドを介してログインされます。これは標準的な手順です。多くの Web サイトでは、ユーザーがサインアップするとすぐにログインします。最初に確認を必要としないほとんどの場合、ユースケースはやや非典型的です。それでも、上で説明した方法を実行すると、confirmable を実装したり、メンバーシップの承認を行ったりすることなく、必要なことが行われるはずです。

于 2013-06-28T16:55:43.183 に答える
1

サインアップ後のユーザーのサインインは、アクションによって呼び出されるsign_upメソッド inによって実現されます。このメソッドを空のメソッドで単純にオーバーライドして、サインインを防ぐことができます。それは私にとってはうまくいきました!Devise::RegistrationsController[create][1]

app/controllers/users/registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController

   def sign_up(resource_name, resource)
   end
end

注:usersテーブル名に置き換えます。

追加:

管理者のみに新しいユーザーまたは他の管理者の追加を許可し、作成アクションを使用してそれらを追加する場合、この以前の方法では、サインアウトする必要がないという利点も得られます。after_sign_up_path_forのメソッドをオーバーライドすることで、サインアップ後にリダイレクトされるページをカスタマイズできますapp/controllers/application_controller.rb

class ApplicationController < ActionController::Base
    def after_sign_up_path_for(user)
        '/users/show' # replace with the path you want
    end
于 2014-03-27T17:20:15.853 に答える