8 创建第一个Rails应用之设置路由
在前面的章节中,我们生成了一个控制器和视图,为我们的Rails应用奠定了基础。现在,我们将学习如何设置路由,使得你的应用能正确地响应HTTP请求,并能将请求转发到正确的控制器和动作。
什么是路由?
在Ruby on Rails中,路由是应用程序的一个重要组成部分。它负责将HTTP请求映射到控制器的特定动作。通过定义路由,我们可以告诉Rails如何处理特定的URL请求。
Rails使用 config/routes.rb
文件来管理应用程序的路由定义。在这个文件中,我们可以设置URL模式,并指定当请求匹配这些模式时应该执行什么操作。
创建简单的路由
让我们来看看如何在 routes.rb
文件中为我们的应用添加简单的路由。假设我们创建的控制器是 ArticlesController
,并且我们希望能够通过特定的URL访问它的动作,例如:index
和 show
。
首先,打开 config/routes.rb
文件。我们将添加以下代码:
1 | Rails.application.routes.draw do |
这段代码使用了 resources
方法,它为 articles
资源生成了一系列RESTful路由。这些路由包括:
GET /articles
- 对应ArticlesController#index
,用于显示所有文章GET /articles/new
- 对应ArticlesController#new
,用于显示新建文章的表单POST /articles
- 对应ArticlesController#create
,用于创建新文章GET /articles/:id
- 对应ArticlesController#show
,用于显示特定文章GET /articles/:id/edit
- 对应ArticlesController#edit
,用于编辑特定文章PATCH/PUT /articles/:id
- 对应ArticlesController#update
,用于更新特定文章DELETE /articles/:id
- 对应ArticlesController#destroy
,用于删除特定文章
利用 resources
方法,我们可以方便地处理RESTful风格的请求,而不必手动逐个定义每条路由。
自定义路由
如果你需要更复杂的路由设置,也可以自定义路由。例如,假设你想为 articles
资源添加一个 publish
动作,可以在 routes.rb
中如下添加:
1 | Rails.application.routes.draw do |
在这个例子中,publish
路由将对应 ArticlesController
中的 publish
动作,并且URL模式将是 POST /articles/:id/publish
。
检查路由
完成路由设置后,我们可以使用以下命令在终端中检查已定义的路由:
1 | rails routes |
这将列出应用程序中所有的路由,包括它们所对应的HTTP动词与控制器动作。你应该能看到像以下输出:
1 | articles GET /articles(.:format) articles#index |
通过查看这些路由,我们确认路由组的设置是否按预期工作。
总结
在本篇中,我们学习了如何设置Rails应用程序的路由。通过 resources
方法,我们快速定义了一整套RESTful路由,并且了解了自定义路由的基本方法。掌握了路由配置后,我们可以更好地控制应用程序的请求处理过程。
在下一篇中,我们将学习如何运行我们的Rails应用程序,并查看为 articles
生成的控制器和视图是如何工作的。请继续关注!
8 创建第一个Rails应用之设置路由