Step.05 後台的controller - Azraeil/JCcart_Note GitHub Wiki
建立dashboard、admin這兩個資料夾
create app/controllers/dashboard/admin
現在我們要一邊看routes.rb一邊來建我們的controllers
### dashboard_controller
create app/controllers/dashboard/dashboard_controller.rb
一開始先建立
class Dashboard::DashboardController < ApplicationController
end現在來解釋這段,我們可以先下cmd + p找到application_controller.rb。
class ApplicationController < ActionController::Base我們可以看到application_controller.rb是繼承自ActionController::Base
如果不想被ApplicationController所影響,可以直接繼承ActionController::Base。
為了享有ApplicationController的便利,我們繼承ApplicationController。
這層叫dashboard,所以一開始打dashboard的namespace
Dashboard:: < ApplicationController再來是dashboard_controller.rb他的全名
Dashboard::DashboardController < ApplicationController接著我們去devise GitHub,看到Controller filters and helpers,於是我們在dashboard_controller.rb加上
before_action :authenticate_user!接下來所有繼承Dashboard::DashboardController就不用寫這行,這是他的好處
### orders_controller
create app/controllers/dashboard/orders_controller.rb
在此,我們就能繼承剛剛的Dashboard::DashboardController
class Dashboard::OrdersController < Dashboard::DashboardController
end### admin_controller
create app/controllers/dashboard/admin/admin_controller.rb
這一次,我們在namespace :admin這一層,而namespace :admin又在namespace :dashboard裡面,所以跟dashboard_controller一樣的概念,我們繼承自ApplicationController
class Dashboard::Admin::AdminController < ApplicationController
end一樣驗證,是否有manager進去
before_action :authenticate_manager!### items_controller
create app/controllers/dashboard/admin/items_controller.rb
class Dashboard::Admin::ItemsController < Dashboard::Admin::AdminController
end#### cates_controller
create app/controllers/dashboard/admin/cates_controller.rb
class Dashboard::Admin::CatesController < Dashboard::Admin::AdminController
end#### cates_controller
create app/controllers/dashboard/admin/cates_controller.rb
class Dashboard::Admin::CatesController < Dashboard::Admin::AdminController
end#### orders_controller
create app/controllers/dashboard/admin/orders_controller.rb
class Dashboard::Admin::OrdersController < Dashboard::Admin::AdminController
end#### users_controller
create app/controllers/dashboard/admin/users_controller.rb
class Dashboard::Admin::UsersController < Dashboard::Admin::AdminController
end#### managers_controller
create app/controllers/dashboard/admin/managers_controller.rb
class Dashboard::Admin::ManagersController < Dashboard::Admin::AdminController
end