8 创建第一个Rails应用之设置路由

在前面的章节中,我们生成了一个控制器和视图,为我们的Rails应用奠定了基础。现在,我们将学习如何设置路由,使得你的应用能正确地响应HTTP请求,并能将请求转发到正确的控制器和动作。

什么是路由?

在Ruby on Rails中,路由是应用程序的一个重要组成部分。它负责将HTTP请求映射到控制器的特定动作。通过定义路由,我们可以告诉Rails如何处理特定的URL请求。

Rails使用 config/routes.rb 文件来管理应用程序的路由定义。在这个文件中,我们可以设置URL模式,并指定当请求匹配这些模式时应该执行什么操作。

创建简单的路由

让我们来看看如何在 routes.rb 文件中为我们的应用添加简单的路由。假设我们创建的控制器是 ArticlesController,并且我们希望能够通过特定的URL访问它的动作,例如:indexshow

首先,打开 config/routes.rb 文件。我们将添加以下代码:

1
2
3
Rails.application.routes.draw do
resources :articles
end

这段代码使用了 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
2
3
4
5
6
7
Rails.application.routes.draw do
resources :articles do
member do
post 'publish'
end
end
end

在这个例子中,publish 路由将对应 ArticlesController 中的 publish 动作,并且URL模式将是 POST /articles/:id/publish

检查路由

完成路由设置后,我们可以使用以下命令在终端中检查已定义的路由:

1
rails routes

这将列出应用程序中所有的路由,包括它们所对应的HTTP动词与控制器动作。你应该能看到像以下输出:

1
2
3
4
5
6
7
8
    articles GET    /articles(.:format)          articles#index
POST /articles(.:format) articles#create
new_article GET /articles/new(.:format) articles#new
edit_article GET /articles/:id/edit(.:format) articles#edit
article GET /articles/:id(.:format) articles#show
PATCH /articles/:id(.:format) articles#update
PUT /articles/:id(.:format) articles#update
DELETE /articles/:id(.:format) articles#destroy

通过查看这些路由,我们确认路由组的设置是否按预期工作。

总结

在本篇中,我们学习了如何设置Rails应用程序的路由。通过 resources 方法,我们快速定义了一整套RESTful路由,并且了解了自定义路由的基本方法。掌握了路由配置后,我们可以更好地控制应用程序的请求处理过程。

在下一篇中,我们将学习如何运行我们的Rails应用程序,并查看为 articles 生成的控制器和视图是如何工作的。请继续关注!

8 创建第一个Rails应用之设置路由

https://zglg.work/rails-zero/8/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论