Grouping Controller

看板Ruby作者 (lala)時間18年前 (2006/12/12 08:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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
文章代碼(AID): #15VVfJvT (Ruby)
文章代碼(AID): #15VVfJvT (Ruby)