什么是Rails中的“资源”?

愚蠢的问题,但我有什么,确切地说,在Rails的“资源”的一些混淆。 这个词在任何地方都可以使用,但是我觉得有趣的是它可能会被用得相当松散。 它在模型,控制器中以及在字面意义上在routes.rb中被routes.rb

这是具体的路线吗? 例如, map.resources映射了7个RESTful“资源”。 所以一个资源的例子就是调用某个类的控制器的index操作。

它是一个参考整个页面/对象被检索? 或者也许更狭窄的是一个数据库表? 或行正在被撤回?

还有别的吗?

无论如何,希望有人可以让我直接…

您希望用户能够通过URI访问并执行CRUD (或其子集)操作的任何对象都可以被视为资源。 在Rails的意义上,它通常是一个由模型表示的数据库表,并通过一个控制器来执行。

例如,您可能有一个User资源(在您的数据库中有一个users表)。 这由User模型表示,映射到具有map.resources :users (然后生成/users (一组用户资源)和/users/1 (特定用户资源)的路由的map.resources :users

您在调用这些资源时使用适当的HTTP方法来处理这些资源。 POST到资源集合( /users )将创build一个新logging; GET检索资源( /users )或特定用户( /users/1 )的列表。 PUT更新特定用户( /users/1/ ), DELETE销毁该用户。 这些URL是相同的,但结果(和控制器操作)可能会根据HTTP动词而不同。 这个想法虽然是/users/1总是意味着“我与ID#1的用户进行交互”,而不pipe操作如何。

这里有一篇很好的文章,讨论大多数开发人员如何认为“资源”与数据库表是同义的,我认为,映射到资源的映射是将控制器映射到该数据库表(或者使用ActiveResource映射到另一个REST URL )。

基本上我认为一个“资源”就是“坚持数据”。 map.resources将7个RESTful 操作映射到一组特定的持久数据。

但是我没有深入的思考这个问题。 好问题!

我想他们可能是指一般的networking意义,即资源(networking) :

任何统一资源标识符的指称

我不认为它与数据库表有任何关系。

打开你的模型文件夹,这是你有什么资源的暗示! 例如:用户,图片,评论…