0

我是 rails 新手,我创建了第一个 rails 应用程序(博客),并按照rails 文档中的指南逐步进行。

但是,当我运行应用程序时,我发现了一些我无法理解的东西。

http://localhost:3000/posts/2

使用GET方法,这将返回 id 为 2 的帖子的详细信息。

但是当更新这篇文章时,我发现表单的动作是'/posts/2'。

删除帖子时,我发现 rails 在 body 中创建了一个表单元素,其中包含 action '/posts/2' 和方法POST,所以我想知道 rails 是如何知道更新或删除这个帖子的?

因为我在后控制器中没有找到任何条件词。

谁能告诉我?

4

1 回答 1

2

运行哪个动作由路径动词的唯一组合决定

在您的应用程序文件夹中执行命令rake routes,您将看到路线列表。

路径,是到您的资源的 RESTful 路由。

动词是GET POST DELETE, 和PUT

我还推荐阅读Rails 路由指南,它更详细地解释了这一点。

这是我的一个应用程序的示例输出rake routes

      path name|verb  |path                              |action
============================================================================
    alias_lists GET    /alias_lists(.:format)             alias_lists#index
                POST   /alias_lists(.:format)             alias_lists#create
 new_alias_list GET    /alias_lists/new(.:format)         alias_lists#new
edit_alias_list GET    /alias_lists/:id/edit(.:format)    alias_lists#edit
     alias_list GET    /alias_lists/:id(.:format)         alias_lists#show
                PUT    /alias_lists/:id(.:format)         alias_lists#update
                DELETE /alias_lists/:id(.:format)         alias_lists#destroy

请注意showupdatedestroy都具有相同的路径,但动词不同。

show's verb    = GET
update's verb  = PUT
destroy's verb = DELETE
于 2012-04-08T00:49:58.743 回答