如何替换Rails中scaffold_controller生成器的控制器模板?
修改Rails脚手架控制器模板的方法
方法一:自定义生成器(推荐)
这是最稳妥的方案,不受Rails版本更新影响,还能复用自定义模板:
- 在应用根目录下创建
lib/generators/scaffold_controller目录 - 在该目录下新建模板文件
controller.rb.tt,写入自定义的控制器模板代码(可参考原Rails模板的变量,比如<%= class_name %>、<%= plural_table_name %>等,保证生成逻辑正常) - 再创建生成器类文件
scaffold_controller_generator.rb,内容如下:class ScaffoldControllerGenerator < Rails::Generators::ScaffoldControllerGenerator source_root File.expand_path("templates", __dir__) end - 完成后运行
rails g scaffold命令,系统会优先使用你自定义的控制器模板
方法二:直接修改Rails内置模板(不推荐)
这种方式操作简单,但存在明显缺陷:
- 找到本地Rails安装路径下的内置模板,路径大致为:
[Ruby安装目录]/lib/ruby/gems/[Ruby版本]/gems/railties-[Rails版本]/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt - 直接编辑该文件即可生效,但Rails版本更新后修改会被覆盖,且无法在其他项目复用
内容的提问来源于stack exchange,提问作者Arthur Felipe
相关产品推荐
相关产品推荐

