用途:在编写 Rails 控制器时提供规范指导,涵盖新建 CRUD 或自定义动作、参数许可、认证授权过滤器、错误处理、会话与 Cookie、渲染与重定向、流式响应与下载、CSRF 与 HTTP 认证等场景。
主要能力与约定:强调瘦控制器(业务逻辑放模型或服务)、用强参数防止批量赋值、遵循 RESTful 约定、默认限制访问、一个控制器对应一个资源。结构上按 include、常量、回调、公开动作(index、show、new、create、edit、update、destroy)、私有方法排序。参数许可推荐 Rails 8+ 的 params.expect;嵌套哈希如 params.expect(user: [:name, address: [:street, :city, :zip]]),标量数组用 tags: [],嵌套对象数组用双重数组 [[:title, :done, :id, :_destroy]],任意键哈希用 metadata: {} 但需谨慎。回调按声明顺序执行,渲染或重定向会中断链;around_action 必须 yield。渲染可用隐式渲染、render json、head,Turbo 出错需 status: :unprocessable_entity。删除后重定向用 status: :see_other。rescue_from 不应捕获 Exception 或 StandardError。
必要用法:先查看现有控制器、路由和 concerns 保持一致性,可用 cat app/controllers/application_controller.rb、ls app/controllers/、ls app/controllers/concerns/、bin/rails routes | grep resource_name。
限制:资料未提供具体收费、平台或效果信息;内容基于 Rails 8.1 约定,示例中的期望写法属于新语法,旧项目可能仍用 require 加 permit。