资源:了解新的和创造

时间:2015-04-10 12:05:25

标签: ruby-on-rails

我有控制器ArticlesController。

我有资源文章(在routes.rb文件中)。

为什么操作articles#new对应GET /articles/new请求和操作acticles#create对应POST /articles请求。为什么不POST /articles/new

2 个答案:

答案 0 :(得分:1)

new操作会显示一个视图,其中包含您填写并提交的表单。在这种情况下,它是articles的表单。此表单可以位于您网站的任何位置,但Rails约定认为它位于您的new页面中。

create操作会获取您在表单中提交的信息并尝试创建对象。在这种情况下,article。按照惯例,此操作不会显示视图,而是重定向到另一个页面。对我而言,它通常是新创建的show的{​​{1}}页面。

答案 1 :(得分:1)

在RESTful架构中定义了对集合URI的POST请求(例如" / articles")应该创建一个新条目。

如前所述," / articles / new" URI只是显示表单,它并不是一个元素URI(在RESTful意义上)。因此,POST,PUT或DELETE它是不合适的。

请参阅http://en.wikipedia.org/wiki/Representational_state_transfer