[Rails] Routing 的 Namespace
namspace 是什麼?
- 一種特定scope應用,能夠創造出一組獨立的controller、path、url Helper等。
- 例如:
namespace :admin do
resources :products
end
為什麼我們要用 namespace?
- 希望有獨立於目前平台的子系統,例如對應前台的後台系統。
- 因為名稱及對應頁面命名類似,因此加入一個命名空間是較好的做法。
如何使用 namespace?
- 以下範例會在一個名為admin的namespace中,建立products的controller
- 執行指令:
rails g controller admin::products
- 會產生一組
* app/view/admin/products路徑
- app/controller/products_controller.rb檔案
- 再至routes.rb加入:
namespace :admin do
resources :products
end
補充
- 也可以直接設定一組首頁
http://localhost:3000/admin/ 直接導到 products#index
namespace :admin do
root "products#index"
end
參考
- 領域名稱Namespace
留言