首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖rails 3中的默认脚手架生成器

覆盖rails 3中的默认脚手架生成器
EN

Stack Overflow用户
提问于 2011-01-08 06:37:16
回答 5查看 5.8K关注 0票数 14

我已经为Rails3中的一个控制器创建了一个生成器,现在我想在使用scaffolding生成器时使用这个生成器作为默认生成器。

这有可能吗?

EN

回答 5

Stack Overflow用户

发布于 2011-04-29 22:22:08

自定义控制器文件的正确位置是lib/templates/rails/scaffold_controller/controller.rb

票数 15
EN

Stack Overflow用户

发布于 2013-02-13 18:24:28

如果您只是想使用自己的控制器模板,只需将其放在lib/templates/rails/scaffold_controller/controller.rb中即可

例如,如果您想要替换scaffold_controller_generator代码本身,以便控制器scaffold生成额外的类文件。您可以在lib/generators/rails/my_scaffold_controller/templates下使用模板创建lib/generators/rails/my_scaffold_controller/my_scaffold_controller_generator.rb

记住在config/application.rb中将rails指向新的scaffold_controller

代码语言:javascript
复制
config.generators do |g|
  g.scaffold_controller = "my_scaffold_controller"
end

对于my_scaffold_controller_generator.rb,如果你想修改默认行为,你可以从railties-3.x.x/lib/rails/generators/rails/scaffold_controller下的railties gem复制;如果你只是想添加功能,你可以从它继承:

代码语言:javascript
复制
require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'

module Rails
  module Generators
    class MyScaffoldControllerGenerator < ScaffoldControllerGenerator
      source_root File.expand_path("../templates", __FILE__)

      def new_funtionality
      end

    end
  end
end
票数 12
EN

Stack Overflow用户

发布于 2011-01-08 09:28:13

您可以覆盖Rails用于其生成器的模板。在本例中,只需将文件放在lib/templates/scaffold_controller/controller.rb中并按您的意愿修改它即可。下次运行rails g scaffold [modelName]时,它将选取这个新的控制器模板并使用它。

这在Section 6 of the Creating and Customizing Rails Generators官方指南中有介绍。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4630911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档