有時候我們需要階層式的路由,可能是實做 API、區分前台後台,這個時候利用子目錄的方式收納 controller 檔案會是單純好管理的辦法。
來看一個例子,假設我們想要這樣的結構:
app/
controllers/
application_controller.rb
admin/
products_controller.rb
customers_controller.rb
shop/
shops_controller.rb
admin
和 shop
是新增加的子目錄,其中收納著我們想要的 controller。底下為了方便僅示範 admin/products 部分。
在路由設定上,我們利用 namespace
來完成階層式的路由設計:
namespace :admin do
get 'products' => "products#index"
end
在 controller 檔案裡我們修改最上面的第一行文字,注意大小寫以及 ::
字符
class Admin::ProductsController < ApplicationController
加入檔案 views/admin/products/index.html.erb
:
Hello, World
然後打開瀏覽器抵達 localhost:3000/admin/products/
應該就可以順利看到內容了。
© Copyrights 從想像到創造. All Rights Reserved.