什么是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) :
任何统一资源标识符的指称
我不认为它与数据库表有任何关系。
打开你的模型文件夹,这是你有什么资源的暗示! 例如:用户,图片,评论…