Step.02 路由設定 - Azraeil/JCcart_Note GitHub Wiki

完整的code

config/routes.rb

Rails.application.routes.draw do

  resources :statics, :only => [:index]
  root "statics#index"

  resources :items, :only => [:index, :show]

  namespace :dashboard do
    resources :orders
    namespace :admin do  
      resources :items  
      resources :cates  
      resources :orders
      resources :users
      resources :managers
    end
  end

end

我們會分三層

第一層:public

public是給所有使用者

resources :statics, :only => [:index]
root "statics#index"

第一層:購物車

resources :items, :only => [:index, :show]

第二層:dashboard

dashboard是給一般使用者

第三層:admin

admin是給管理者

一個系統在打時,建議從後面打到前面,所以我們先從管理介面:admin開始打

namespace :dashboard do  #第二層
  resources :orders

  namespace :admin do    #第三層
    resources :items  # 要賣的東西
    resources :cates  # 要賣的東西的分類
    resources :orders # 訂單
    resources :users
    resources :managers
  end
end

namespace 裡面與外面的code,他的差異在於路由

namespace裡面的網址:dashboard/items/action

namespace外面的網址:/statics/action/

由於我們現在是教學示例,所以admin還是寫:admin,但你實際在做商品時,不該這樣寫,會讓你的後台容易被猜到,應該改用亂碼寫,像是:sakwejh,所以做商品時,後台路由其實該長這樣

namespace :dashboard do
  resources :orders

  namespace :sakwejh do  

    resources :items  # 要賣的東西
    resources :cates  # 要賣的東西的分類
    resources :orders # 訂單
    resources :users
    resources :managers
  end
end