在Rails中,对于/ users来说是GET对于索引操作的RESTful标准,对/ users的POST是用于创建操作吗?

时间:2011-02-23 15:33:08

标签: ruby-on-rails ruby-on-rails-3

我正在研究一个Rails插件,似乎要创建一个用户,HTML表单说

<form action="/users" method="post">

如果我做了

rake routes

它说:

users GET    /users(.:format)           {:controller=>"users", :action=>"index"}
      POST   /users(.:format)           {:controller=>"users", :action=>"create"}

所以看起来像标准是/controller_name的GET是执行index操作,而POST是执行create操作?这几乎是100%的标准吗?有什么例外吗?

2 个答案:

答案 0 :(得分:1)

这是使用Rails资源丰富路由时的默认设置。您当然可以通过多种方式覆盖此默认设置,如此guide中所述,但您应该只有充分理由这样做。

答案 1 :(得分:1)

回答

Rails路径尽可能灵活。

<强> BUT 即可。 Rails喜欢REST风格。你可以阅读一些维基http://en.wikipedia.org/wiki/Representational_State_Transfer

像CRUD一样的REST:http://en.wikipedia.org/wiki/Create,_read,_update_and_delete

因此。我们有关于资源的惯例。我们可以:

  • 阅读资源清单:GET /resources
  • 阅读资源:GET /resources/:id
  • 创建新资源:POST /resources
  • 更新资源:PUT /resources/:id
  • 删除资源:DELETE /resources/:id
  • 阅读资源以进行编辑:GET /resources/:id/edit
  • 阅读以创建:GET /resources/new

这是REST的基础。