用途:指导在 Rails 项目中正确使用与创建生成器,按需生成最少文件,避免 scaffold 带来的冗余。
主要能力:覆盖内置生成器(model、migration、controller、scaffold、resource、job、mailer、channel、task、mailbox、generator、integration_test、system_test、scaffold_controller、helper 等)的选择与用法;常用参数如 --no-helper、--no-assets、--no-jbuilder、--skip-migration、--skip-routes、--force、--pretend;字段类型与修饰符(references、jsonb、uuid、string{100}、decimal{8,2}、:uniq、:index、polymorphic);迁移命名约定(AddXxxToYyy、RemoveXxxFromYyy、CreateJoinTableXxxYyy);在 config/application.rb 的 config.generators 中设置项目默认值;创建自定义生成器(bin/rails generate generator service)及模板变量(name、file_name、class_name、plural_name、table_name、class_path 等);通过 lib/templates/ 覆盖内置模板。
使用方式:先查看 config.generators 与 bin/rails generate --help,选择最具体的生成器;复杂生成先用 --pretend 试运行;出错用 bin/rails destroy 撤销后再重新生成;批量字段一次传入。
适用场景:日常 Rails 开发中的模型、控制器、迁移、后台任务、邮件等代码生成,以及项目内重复模式(service、form、query、policy 等)的自动化。
限制:资料未提供具体版本要求、性能数据或收费信息;自定义生成器适合重复三次以上的模式,一次性需求直接手写更合适。