控制器和宁静的应用程序

时间:2009-12-15 09:23:39

标签: ruby-on-rails ruby model-view-controller architecture

我有一个MVC Web应用程序(Ruby,Rack,Apache),我想让它变得安静。 我有一个调度程序,它将获取传入的URI并调用适当的控制器。 在我看来,一个控制器可以处理与单个模型相关的每个动作,我错了吗? 我不确定的事情如下:

如果用户有多个项目,我如何使用URI / user / user_id / item / item_id获取特定项目 我的意思是,这些事情是应该在UserController中处理还是我需要创建另一个“跨类”控制器,如UserItemController,应该照顾这个东西? 我希望我很清楚:-) 非常感谢, LUC

2 个答案:

答案 0 :(得分:2)

在控制器或模型中组织您的方法几乎与您的应用程序是否会变得安静无关。理想情况下尝试将1个控制器映射到1个模型,但您可以将控制器专用于某个操作(例如login)。

您要查看的是routes.rb文件。这是您将映射资源等的地方。

  map.connect ':controller/:action/:id'

我建议阅读the excellent article of Ryan Tomayko about REST

答案 1 :(得分:0)

控制器中会有多少代码?他们会有什么依赖?如果这些依赖性发生变化,你需要重建多少?你能想象在一个projecc团队中细分责任 - 有些人在用户上工作,有些人在项目上工作吗?

我倾向于保持控制器的数量很少,所以我只将它们分开以启用并行开发,或者如果你发现“URL空间”的某些部分似乎有自己的生命,很多流失,其余的是稳定的。

我认为如果你发现需要增加粒度,你可以对Controller粒度进行最新决策,重构。