deviseでユーザ新規登録させない
devise (3.2.4)
ユーザレコードはseedとかから取り込むので、利用者には新規登録させないみたいなケース.
controller
app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController def new redirect_to '/users/sign_in', notice: 'ユーザの新規作成はできません。' end def create redirect_to '/users/sign_in', notice: 'ユーザの新規作成はできません。' end private def account_update_params params.require(:user).permit(:username, :email, :password, :password_confirmation, :current_password) end end
オーバーライドしてしまう。
routes
devise_for :users, controllers: { registrations: "registrations" }
routesによくわからないdevise_forというメソッドがあるので、そこで認証で使うcontrollerを明示してやると、登録はそのcontrollerでしてくれるようになる。
deviseって(認証機能に手を入れる予定ないなら)便利だなぁ。