41
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

devise デフォルトルーティングのカスタマイズ

Last updated at Posted at 2019-05-08

deviseでcontrollerをカスタマイズしていくときにルーティングもカスタマイズしていく事が多いと思います。
個人的に管理画面を作成していてルーティングを変更する事が多かったので備忘録として残していきます。

##sign_inとsign_outのルーティングを変更する

###変更前

  new_user_session     GET    /users/sign_in(.:format)            devise/sessions#new                                           
             user_session POST   /users/sign_in(.:format)            devise/sessions#create                                                     
     destroy_user_session DELETE /users/sign_out(.:format)           devise/sessions#destroy                                                   

###変更後

routes.rb
  devise_scope :user do
    get 'login', to: 'devise/sessions#new'
    post 'login', to: 'devise/sessions#create'
    delete 'signout', to: 'devise/sessions#destroy'
  end

こうすることで下記のルーティングになります。

login   GET    /login(.:format)               devise/sessions#new
        POST   /login(.:format)               devise/sessions#create
signout DELETE /signout(.:format)             devise/sessions#destroy

###prefixを変更前の様にnew_user_sessionの様にしたい場合はasを使い指定する必要があります。

  devise_scope :user do
    get 'login', to: 'devise/sessions#new', as: :new_user_session
    post 'login', to: 'devise/sessions#create', as: :user_session
    delete 'signout', to: 'devise/sessions#destroy', as: :destroy_user_session
  end

##Controllerをカスタマイズしている場合

routes.rb
  devise_for :users,
    path: '',
    path_names: {
      sign_up: '',
      sign_in: 'login',
      sign_out: 'logout',
      registration: "signup",
    },
    controllers: {
      registrations: "users/registrations",
      sessions: "users/sessions"
    }

Image from Gyazo

##admin画面などでのルーティングを組みたい場合

routes.rb
  devise_for :users,
    path: :admin,
    :controllers => {
      :registrations => 'organizers/registrations',
      :sessions => 'organizers/sessions',
      :passwords => 'organizers/passwords'
    }

pathを指定してあげるとusersを'admin'に置き換える事が出来ます。

Image from Gyazo

参考になった記事

sign_inとsign_outのデフォルトルーティングを変更する

ご覧いただきありがとうございました。

41
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?