命名根控制器

时间:2009-04-24 16:10:06

标签: ruby-on-rails

在开始一个新项目时,我总是被这个问题所困扰。当我查看像Mephisto,Typo等的例子时,他们将根路由到与特定资源/模型相关的控制器。

我的问题是,几乎我建立的每个网站,我觉得我的头版实际上是我所有模型的合作,我不能看到自己指向与特定的一个相关的控制器我的目标网页。

是否有人倾向于创建专门用于网站前端的控制器?或者,如果我认为这完全错了,请告诉我。

编辑:

这就是我的困惑所在:

rboard's routes将root映射到名为index的控制器...但我甚至找不到索引控制器

mephisto's routes使用了一些custom routing的东西,没有root甚至是map.connect到'/'

radiant's routes大部分应用程序都转到一个控制器,然后做一些疯狂的魔法

track's routes转到一个与资源相关的控制器(这是一个最接近我上面描述的例子)...但不适合我,因为正如我所说,我的根源往往有很多东西

spot us实际上做了类似于我的事情,有一个只有一个节目动作的家庭控制器,这是我的头版。

4 个答案:

答案 0 :(得分:10)

  

我的问题是,几乎每个网站   我曾经建造过,我觉得我的前线   页面实际上是一个合作   我所有的模特,我都看不到自己   指向一个控制器   与我的一个特定的相关   登陆页面。

完全。所以你所做的是正确的。

我经常制作两个控制器,用于与不常用的REST东西进行交互:'welcome'和'dashboard'。欢迎控制器映射到我的站点的根目录,“仪表板”控制器类似,但对于已登录的用户。

答案 1 :(得分:6)

  

是否有人倾向于创建专门用于网站前端的控制器?或者,如果我认为这完全错了,请告诉我。

简短回答是“是”。

对于它的价值,我通常采用类似于Spot.Us的方法,并定义一个带有索引操作/视图的HomeController,并将其留在那里。

答案 2 :(得分:2)

不确定这是否是您正在寻找的答案,但这就是我所做的。我通常使用两种控制器类型的组合,一种是Front Controller和Action控制器。 Front Controller负责URL路由并确定要采取的操作,而Action Controllers则提供实际功能。这与Zend Framework的做法类似。

话虽如此,我将通过前端控制器管理所有流量,包括首页流量。我通常有一个名为“IndexController”的动作控制器来处理杂项页面请求,并且通常首页属于该类别(以及隐私政策页面,联系表格等)。

如果页面与网站的任何业务域逻辑没有特别关联,我倾向于将其放在我的索引操作控制器下,尽管我努力尽可能地将网站功能分组。

答案 3 :(得分:0)

SiteController对我来说似乎是最好的名字。 SiteController将包含您最重要的操作索引,而我的SiteController始终包含其他操作,如contact,about等。