4

非 RESTful 的 AJAX 调用应该是:

  1. 放入最适合其功能/视图的控制器,或
  2. 捆绑在一起成为他们自己独立的“Ajax”控制器?

我一直在做1,但我刚刚读过这篇(2725 diggs)文章
http://zygote.egg-co.com/10-dirty-little-web-development-tricks/(见第9点)
和这个chap 选择了方法 2。但他是一名 PHP 开发人员。

一个好处可能是 2 可能会通过执行 'ajax/:action' 之类的操作来清理路由,而不是将成员添加到 restful 路由。

看起来像是6.5 的一个,半个面包师的打其他类型的东西。

你选择哪个选项?

4

2 回答 2

8

我更喜欢第一种方法:

  1. 它在语义上是一致的。如果 Ajax 操作涉及资源 XXX,您(和其他编码人员)将知道在应用程序中的何处查找内容,这要归功于 Rails 约定。
  2. 如果您的应用程序在 Ajax 上很重(现在大多数都是),那么您最终会得到一个否定整个 RESTful 事物的庞然大物 AjaxController。您的其余控制器将在那里提供优雅降级的非 JavaScript CRUD 操作。
  3. 同样,测试您的 Ajax 控制器往往会有些混乱,因为您必须为应用程序的每个“ajaxified”资源设置场景——加载固定装置、模拟等。
于 2009-07-25T22:05:13.470 回答
0

您的“RESTful”控制器可能包括newedit操作,它们实际上都不是 RESTful,它们只是为createupdateREST 操作提供用户界面。new并且edit不要获得单独的 NonRestUIController 或其他东西,它们被保存在相关资源的控制器中,从而使您的控制器在语义上保持一致。同样,与特定功能集或特定资源相关的 Ajax 操作应保留在关联的控制器中。

于 2009-07-26T20:00:28.707 回答