Grouping Controller
http://lightyror.blogspot.com/2006/12/grouping-controller.html
昨天在看Agile Web Development with Rails 第二版時,發現到 0.14 -> 1.1 之間果然加入了許多東西,舉個例子,Grouping Controller 就是一個我一直沒發現到的好用小技巧。
當你在開發 Rails 程式的時候,你會發現 Controller 數量會漸漸變大,同一個 Controller 底下的 Action 數量也會漸漸大起來,而這個問題就很容易造成困擾。另外我們會發現到一些特質,就算很多功能是屬於同一個 Controller ,他們底下某些 function 卻是有自己的族群,這時候我們要切成兩個 Controller 也不是,放在同一個 Controller 也略嫌冗長。
這時候就要使用 Grouping Controller ,你可以使用階層式的 Controller 來分類這些 action。舉個例子吧,我們要寫管理介面當中管理書籍的頁面
ruby script/generate controller Admin::Book
這個會產生
app/controllers/admin/ 這個資料夾
app/controllers/admin/book_controller.rb 這個 Controller
app/views/admin/ 這個資料夾
app/views/admin/book/ 這個資料夾
本身 admin 只是母分類,只是在 controller 跟 view 當中多一個目錄來作分類,真正可以 access 到的是 book_controller.rb 這個 controller 跟相對應的 action。而仔細看 book_controller.rb 裡面, Controller 宣告的寫法也改成
class Admin::BookController < ApplicationController
end
這個樣子。而你要 access 到 Grouping Controller 的 action1 你必須使用
http://url.com/admin/book/action1
這樣的使用方式。除此之外使用方式就跟原來一模一樣。
我本身開發程式的時候,發現到我這方面的 Controller 數量成長不大,並沒有特別需要這個技巧的理由。不過如果你們程式的寫法造成大量的 Controller 數量,或是 action 數量爆多。你可以考慮導入 Grouping Controller 來加強你的結構化。
--
lighty RoR 是一個介紹 lighttpd , SQLite , Ruby and Rails 的 Blog
http://lightyror.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.104.48
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章