[Rails] Devise 拿掉註冊方式
方式1
# [path] route.rb
devise_for :users, :skip => [:registrations]
#拿掉registrations不只會拿掉註冊,還會拿掉編輯,所以下面要再手動加回來
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
方式2. override
# [path] app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
def new
flash[:info] = '目前不開放註冊'
redirect_to root_path
end
def create
flash[:info] = '目前不開放註冊'
redirect_to root_path
end
end
# [path] route.rb
if Rails.env.production?
devise_for :users, :controllers => { :registrations => "registrations" }
else
devise_for :users
end
備註
- registrations的hash代表我要override的controller
- 可以到gem裡面看哪些可以override
留言