【Rails】devise1つで複数モデルを管理する方法
開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・OS: macOS Catalina
1.devise
を導入
Gemfile
gem 'devise'
ターミナル
$ bundle
ターミナル
$ rails g devise:install
2.「devise.rb」
を編集
config/devise.rb
# 235行目をコメントアウトして、「true」に変更
config.scoped_views = true
3.モデルを作成
ターミナル
$ rails g devise user
ターミナル
$ rails g devise admin
4.コントローラーを作成
ターミナル
$ rails g devise:controllers users
ターミナル
$ rails g devise:controllers admins
4.ビューを作成
ターミナル
$ rails g devise:views users
ターミナル
$ rails g devise:views admins
5.ルーティングを編集
routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions',
passwords: 'users/passwords',
registrations: 'users/registrations'
}
devise_for :admins, controllers: {
sessions: 'admins/sessions',
passwords: 'admins/passwords',
registrations: 'admins/registrations'
}
end
6.必要無いビューを削除する
ターミナル
$ rails d devise:views
Gemfile
gem 'devise'
ターミナル
$ bundle
ターミナル
$ rails g devise:install
「devise.rb」
を編集
config/devise.rb
# 235行目をコメントアウトして、「true」に変更
config.scoped_views = true
3.モデルを作成
ターミナル
$ rails g devise user
ターミナル
$ rails g devise admin
4.コントローラーを作成
ターミナル
$ rails g devise:controllers users
ターミナル
$ rails g devise:controllers admins
4.ビューを作成
ターミナル
$ rails g devise:views users
ターミナル
$ rails g devise:views admins
5.ルーティングを編集
routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions',
passwords: 'users/passwords',
registrations: 'users/registrations'
}
devise_for :admins, controllers: {
sessions: 'admins/sessions',
passwords: 'admins/passwords',
registrations: 'admins/registrations'
}
end
6.必要無いビューを削除する
ターミナル
$ rails d devise:views
ターミナル
$ rails g devise user
ターミナル
$ rails g devise admin
ターミナル
$ rails g devise:controllers users
ターミナル
$ rails g devise:controllers admins
4.ビューを作成
ターミナル
$ rails g devise:views users
ターミナル
$ rails g devise:views admins
5.ルーティングを編集
routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions',
passwords: 'users/passwords',
registrations: 'users/registrations'
}
devise_for :admins, controllers: {
sessions: 'admins/sessions',
passwords: 'admins/passwords',
registrations: 'admins/registrations'
}
end
6.必要無いビューを削除する
ターミナル
$ rails d devise:views
ターミナル
$ rails g devise:views users
ターミナル
$ rails g devise:views admins
routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions',
passwords: 'users/passwords',
registrations: 'users/registrations'
}
devise_for :admins, controllers: {
sessions: 'admins/sessions',
passwords: 'admins/passwords',
registrations: 'admins/registrations'
}
end
6.必要無いビューを削除する
ターミナル
$ rails d devise:views
ターミナル
$ rails d devise:views
Author And Source
この問題について(【Rails】devise1つで複数モデルを管理する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/matsubishi5/items/b8e63dc723f11d77845e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .