Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “a”是什么;资源“;在轨道上?_Ruby On Rails - Fatal编程技术网

Ruby on rails “a”是什么;资源“;在轨道上?

Ruby on rails “a”是什么;资源“;在轨道上?,ruby-on-rails,Ruby On Rails,愚蠢的问题,但我对Rails中的“资源”到底是什么有一些挥之不去的困惑。这个词到处都在使用,但我有一种奇怪的感觉,它可能使用得相当松散。它在模型、控制器和routes.rb中被引用 是具体路线吗?例如,map.resources映射7个RESTful“资源”。一个资源的例子就是调用,比如说,一个特定类的控制器的索引操作 它是对正在检索的整个页面/对象的引用吗?或者,更狭义地说,是数据库表?或是被收回的那一排 是别的吗 无论如何,希望有人能让我明白…这里有一个讨论,大多数开发人员如何认为“资源”与

愚蠢的问题,但我对Rails中的“资源”到底是什么有一些挥之不去的困惑。这个词到处都在使用,但我有一种奇怪的感觉,它可能使用得相当松散。它在模型、控制器和
routes.rb
中被引用

是具体路线吗?例如,
map.resources
映射7个RESTful“资源”。一个资源的例子就是调用,比如说,一个特定类的控制器的
索引
操作

它是对正在检索的整个页面/对象的引用吗?或者,更狭义地说,是数据库表?或是被收回的那一排

是别的吗

无论如何,希望有人能让我明白…

这里有一个讨论,大多数开发人员如何认为“资源”与数据库表是一致的,我猜想,映射到资源就是将控制器映射到该数据库表(或者,使用ActiveResource,映射到另一个REST url)

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


但我还没有深入思考。好问题

我想他们可能是指一般的网络意义,即:

任何统一资源标识符的引用


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

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

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


调用这些资源时,您可以使用适当的HTTP方法对这些资源进行操作。
POST
到资源集合(
/users
)创建新记录;
GET
检索资源列表(
/users
)或特定用户(
/users/1
).
PUT
更新特定用户(
/users/1/
),而
DELETE
则销毁该用户。URL是相同的,但结果(和控制器操作)可能会因HTTP动词的不同而不同。尽管如此,
/users/1
始终意味着“我正在与ID为1的用户交互”,不考虑操作。

打开您的模型文件夹,这是您拥有哪些资源的提示!
示例:用户、图片、评论…

这里的许多人都说资源指的是您拥有的数据库表。有时可能是真的,但不一定总是真的。我可以给您举很多示例,说明您的数据库中没有特定资源的对应表。因此,将其与表关联相当困难错。

我将资源定义为一个映射到相关请求的路由。因此,不必为要执行的操作声明单独的路由,只需使用资源路由来声明它们。在Rails中,资源路由提供了
HTTP请求
URL
控制器操作
之间的映射

假设您在
config/routes.rb

中定义
resources:users
,您现在可以在应用程序中为控制器使用许多帮助程序,例如
edit\u user\u path
,它返回
users/edit
,,这里有一个很好的链接:

这基本上是说:资源路由允许您快速声明给定资源控制器的所有公共路由。资源路由不是为索引、显示、新建、编辑、创建、更新和销毁操作声明单独的路由,而是在一行代码中声明它们:


参考资料:照片

如果我有一个资源没有使用数据库模型(它使用单独服务的API进行持久化),那么使用rails“资源”还有意义吗快捷方式还是手动定义路由更好?当然,您当然可以使用
resources
为不在数据库中的资源定义路由!如果您不需要它默认路由到的所有控制器操作,只需使用
仅:
除外:
告诉它您真正想要的操作。对于例如,
resources:things,only:[:index,:show]
…我知道这很古老,但我希望有人能回答,在
config/routes.rb
中使用
资源:用户
是否仅用于声明7条REST路由?@IrfandyJip我不是专家,但我知道添加
资源:用户
会为您声明7条REST路由,您可以使用
为自己验证>rails routes
命令。您能否澄清您的问题,并解释您是否需要为
:user
.Hm.提供其他路由。我认为这不是一个有效的答案,尤其是对于新的RoR用户。我来到这里是因为我对中提供的教程感到困惑,我只看到了
关注点/
应用程序记录.rb
on
app/models/
(我正在进行第5步)。我不明白为什么这会有帮助。在rails中,资源是应用程序拥有的实体,例如MVC中的“用户”、“图片”、“评论”、“喜欢”(rails基于此)您有用于模型、视图和控制器的单独文件夹…这直接取自您提供的链接:“在博客应用程序中,您现在将创建一个新资源。资源是用于类似对象(如文章、人或动物)集合的术语。您可以创建、阅读、更新