【问题标题】:controller and restful application控制器和宁静的应用程序
【发布时间】:2010-12-26 17:53:58
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    我推荐阅读the excellent article of Ryan Tomayko about REST

    【讨论】:

    【解决方案2】:

    控制器中有多少代码?他们会有什么依赖?如果这些依赖关系发生变化,您需要重建多少?您能想象在项目团队中细分职责吗?有些人负责用户,其他人负责项目?

    我倾向于减少控制器的数量,所以我只会将它们分开以实现并行开发,或者如果您发现“URL 空间”的某些部分似乎有自己的生命,大量的流失,而其余的则稳定。

    我认为您可以对控制器粒度做出较晚的决定,如果您发现需要增加粒度就进行重构。

    【讨论】:

    • - 没有太多代码 - 控制器内的依赖关系?嗯,这就是我实际上想要弄清楚的——我想重建工作并不那么重要——没有在项目团队中细分责任是的,你说得对,我认为这个决定可以稍后做出,但在事实上,我想知道在这种情况下是否有一些最佳实践。 - 使用控制器在几个不同的模型中查询/更新事物......或者 - 对指定模型使用控制器,但在这种情况下如何处理跨模型关系?非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多