【发布时间】:2015-12-21 03:28:28
【问题描述】:
我是 Rails 和 Ruby 开发的新手,所以如果有人回答了这个问题,我深表歉意,我找不到任何可以解决我的确切问题的东西。
假设我想向资源添加一个 RESTful 端点,比如说“表单”。我用于实际编辑和创建表单的默认 CRUD 操作。我想添加一个端点以允许 POST 提交表单。让我们不要陷入这个计划和设计的困境,我只是以这个为例来说明我的问题。如果我将“提交”作为嵌套资源(无论如何这对我来说真的没有意义——在这种情况下,提交是一个动作,而不是资源),为我生成的路由需要一个关联表单的 :id 。我明白了。所以会生成这样的东西:
/forms/:id/提交
但是,假设我希望在 url 中仍然有 /forms(所以我似乎不想要一个浅路径范围 - 即我不想做 /submission)看起来像这样:
/表格/提交
我该怎么做?我的问题是我试图将方形钉子装入圆孔并使其成为资源吗?我是否需要在我的资源路由之外使用类似这样的显式和非 RESTful 的东西:
发布“表单/提交”=> 'forms#submission'
如果我缺少更多特定于 Rails/Ruby 的内容,请告诉我,因为我还在学习。但是,我觉得这更像是一个 REST 问题,而且我的处理方式不正确。
基本上,我已经有一个 POST 操作来创建一个表单,所以在一天结束时,我只是想向资源“表单”添加另一个 POST 操作,但不需要路径中的表单 ID,但是仍然想要路径中的形式。在这种情况下,我不在乎用户提交了哪个表单,我们对它们一视同仁,因此 id 不相关。我唯一关心表单 ID 是在请求或编辑表单时。
谢谢!
【问题讨论】:
标签: ruby-on-rails rest routes rails-api