我有控制器ArticlesController。
我有资源文章(在routes.rb文件中)。
为什么操作articles#new
对应GET /articles/new
请求和操作acticles#create
对应POST /articles
请求。为什么不POST /articles/new
?
答案 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