resource和resources方法之间的逻辑区别是什么
以下是一些例子:
资源:订单:仅限=>;[:索引,:创建,:显示]
&燃气轮机;耙道
订单发布/订单(:格式)订单#创建
获取/订单(:格式)订单#显示
资源:订单:仅限=>;[:索引,:创建,:显示]
&燃气轮机;耙道
订单获取/订单(:格式)订单#索引
发布/订单(:格式)订单#创建
订单获取/订单/:id(:格式)订单#显示
资源:订单
&燃气轮机;耙道
订单发布/订单(:格式)订单#创建
新订单获取/订单/新(:格式)订单#新
编辑订单获取/订单/编辑(:格式)订单编辑
获取/订单(:格式)订单#显示
下单/订单(:格式)订单#更新
删除/订单(:格式)订单#销毁
资源:订单
&燃气轮机;耙道
订单获取/订单(:格式)订单#索引
发布/订单(:格式)订单#创建
新订单获取/订单/新(:格式)订单#新
编辑订单获取/订单/:id/编辑(:格式)订单#编辑
订单获取/订单/:id(:格式)订单#显示
PUT/orders/:id(:格式)订单#更新
删除/订单/:id(:格式)订单#销毁
看起来方法资源没有为索引创建路由,在某些情况下,助手是不同的(新订单和新订单)。为什么?
在较高的层次上,resource的目的是声明这些资源中只有一个将永远存在。例如:
资源:配置文件,:仅=>;[:编辑,:更新]
作为一个用户,我应该只能更新自己的个人资料。我应该永远无法编辑其他用户的配置文件,因此不需要像/users/1/profile/edit这样的URL方案。相反,我使用/profile/edit,控制器知道使用当前用户的ID,而不是URL中传递的ID(因为没有)
这就是为什么你不能用资源获得索引操作的原因:只有一个资源,所以“列出”它们是没有意义的