MST

星途 面试题库

面试题:Ruby on Rails路由系统中如何定义资源路由及常见选项含义

在Ruby on Rails应用里,阐述使用`resources`方法定义资源路由的基本语法,并说明`:only`、`:except`、`:path`等常见选项的作用是什么。
16.6万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试

基本语法

在Rails应用的config/routes.rb文件中,使用resources方法定义资源路由的基本语法如下:

resources :controller_name

这里的:controller_name是指对应的控制器名称,Rails会根据资源名称自动映射到相应的控制器(通常复数形式的资源名对应Controller结尾的控制器,如posts对应PostsController)。

:only选项作用

:only选项用于指定只生成特定的HTTP动作(action)对应的路由。例如:

resources :posts, only: [:index, :show]

上述代码只会生成index(用于显示资源列表)和show(用于显示单个资源详情)动作对应的路由。这样可以限制应用暴露的接口,提高安全性和减少不必要的路由生成。

:except选项作用

:except选项与:only相反,用于指定排除某些HTTP动作对应的路由。例如:

resources :posts, except: [:destroy]

上述代码会生成除了destroy(用于删除资源)动作之外的其他标准资源路由。通过这种方式,可以方便地排除不希望应用提供的某些操作的路由。

:path选项作用

:path选项用于自定义资源路由的路径前缀。例如:

resources :posts, path: 'articles'

原本posts资源的路由前缀会是/posts,使用:path选项后,路由前缀会变为/articles。这在需要为资源使用不同的URL路径表示时很有用,比如出于SEO优化或业务逻辑的考虑,需要使用更友好或特定的路径。