作者giive (lala)
看板Ruby
标题Grouping Controller
时间Tue Dec 12 08:39:58 2006
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