从脚手架调用的自定义 erb 生成器

Posted

技术标签:

【中文标题】从脚手架调用的自定义 erb 生成器【英文标题】:Custom erb generator called from scaffold 【发布时间】:2015-02-17 21:41:45 【问题描述】:

我不仅希望自定义我的 erb 脚手架模板,还希望添加新模板。

ScaffoldGenerator < Erb::Generators::Base 我可以看到有一种方法可以在%w(index edit show new _form) 中提供额外的模板。

所以我在lib/generators/erb/scaffold/ 的应用程序中创建了一个自定义erb 生成器和模板目录。

但是,当我运行 rails g scaffold Something 时,我的自定义生成器没有通过 scaffold_controller 获取。这是否意味着我需要提供一个自定义的scaffold 生成器来使用自定义的scaffold_controller 生成器,这样它才能使用我的erb 生成器?

我还可以看到脚手架参数:

ScaffoldController options:
  -e, [--template-engine=NAME]  # Template engine to be invoked
                                # Default: erb

我能否提供我的 erb 生成器作为要使用的模板引擎?

(使用 Rails 4)

【问题讨论】:

几乎在这里回答了我的问题***.com/questions/4696954/… 【参考方案1】:

lib/templates/erb/scaffold 是 rails 脚手架的正确路径。

以防万一……

模型进入/lib/templates/active_record/model/model.rb

控制器进入/lib/templates/rails/scaffold_controller/controller.rb

【讨论】:

以上是关于从脚手架调用的自定义 erb 生成器的主要内容,如果未能解决你的问题,请参考以下文章

从 ruby​​ on rails 中删除 new.haml/new.erb?

如何使脚手架模板添加新的自定义视图

Maven之自定义archetype生成项目骨架(构建脚手架项目)

Maven之自定义archetype生成项目骨架(构建脚手架项目)

如何在 Rails 中为现有模型生成表单?

在 /new 和 /edit 中更改脚手架的按钮值