Rails:RESTful资源:值得使用还是不灵活/高估?

时间:2010-11-22 19:56:27

标签: ruby-on-rails rest rails-routing

过去两个月我一直在玩铁轨,到目前为止一切进展顺利 - 但有一个方面我有点怀疑。

我一直听说RESTful rails资源的乐趣:即config / routes中的'resource:foo',以及控制器中的7个restful操作。

除了非常简单的事情(例如通过运行'生成脚手架'完成99%的事情),我发现尝试将我的项目功能压缩到该方法中比仅仅匹配配置/路由中的URL更不方便一,并根据需要做每个动作。

但我一直认为自己错了,除了最极端的情况之外,RESTful资源才是最佳选择。

所以:

(a)有人可以对此提出意见吗?

(b)对于经验丰富的铁路人员,典型项目中您的路线的百分比是:资源以及按行动编码的百分比是多少? 干杯...

2 个答案:

答案 0 :(得分:5)

资源很方便,但它们不是“一刀切”的功能。有些事情对7种方法没有意义。

请注意you can

  • 使用:except排除特定方法。
  • 仅包含:only的具体方法。
  • 将自己的方法添加到资源中。

所以他们并不像你想象的那样缺乏灵活性。但是,如果考虑到这三点后,资源只是“感觉不对”,跳过它! REST从未打算取代常规路由,它只是试图抽象出最常见的用例。

如果您完全跳过RESTful资源,那么您将缺少大量免费功能。明智地使用它你会没事的。

答案 1 :(得分:0)

通常我会考虑使用REST架构开始一个项目。我以这种方式构建我的基本功能,但随着项目/网站的进展,我编写了越来越多不适合RESTful架构的视图。营销网站和并行功能就是完美的例子。

以下是关于该方法的文章:

http://ablogaboutcode.com/2010/11/22/to-be-or-not-to-be-restful-ruby-on-rails-best-practices/


在开始之前,您可能想问自己一些问题:

  1. 此控制器/视图是否主要处理像Post,Blog?
  2. 这样的对象/实体
  3. 是否可以在网上获得创建,更新,删除,编辑和新操作?
  4. 作为指导,如果您对这两个问题的回答是“是”,那么最好从REST开始,并期望您最终将该体系结构用作构建块,以用于您可能想要执行的其他操作和视图。否则,选择最能代表操作将显示或执行的操作的URL(/ archives,/ tour,/ december-offer),并确保使用正确的HTTP协议(GET用于显示,PUT用于更新,DELETE用于删除和POST用于创建)。