1

我有一个 Rails 应用程序,它只使用默认值,当前捕获所有路由。这适用于常规 HTML 请求。

match ':controller(/:action(/:id))(.:format)'

我想向移动客户端公开 CRUD 功能。那么如何扩展我已经拥有的内容以支持恢复请求(JSON)?我应该在默认路由之前将资源路由添加到我的 route.rb 吗?或者我应该停止使用默认路由来支持资源路由吗?我想另一种选择可能是使用 match 显式指定 restful 路由。然而,这似乎是错误的。

感谢您的任何建议!

4

1 回答 1

0

不管你决定什么,你真的应该考虑放弃默认的包罗万象的路线。明确说明您的路线会给您带来许多好处,例如为您的视图命名路线并作为有关路线中实际发生的事情的文档。

现在,从技术上讲,您根本不需要调整引用的路由来处理大多数请求,无论格式如何(只要它不是太深 /like/this/route/is)。资源路线在大多数情况下都很好,并且是一个很好的起点,但实际上我更喜欢明确说明您提到的所有路线。它稍微冗长一些,但它确实提供了几个优点。第一个优势是性能。更少的路线意味着更快的路线,明确说明您的路线可以突出删除未使用路线的机会。这种方法的另一个优点是它提供了额外的可配置性。您可能能够将两个 REST-ful 路由发送到同一个控制器操作,因为重复的逻辑会导致更少的 DRY 控制器/视图。最后,与删除包罗万象的路线大致相同,它充当您路线的实时文档。您再也不需要进入控制台来运行rake routes命令以查看您的路由发生了什么。我和其他人一样喜欢 rails 的魔法,但我觉得这是我的 rails 应用程序中欢迎额外冗长的少数几个领域之一。

于 2012-10-24T04:31:55.933 回答