面试题答案
一键面试基本语法
在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优化或业务逻辑的考虑,需要使用更友好或特定的路径。