为了明确,这不是我想要的:
- 让我的自定义生成器调用默认的Rails生成器
- 用自己的生成器替换默认的Rails生成器
我想做的是在调用以下命令时自动调用我的生成器:
rails generate scaffold User name age:integer
我不是在编写测试替代方案或类似的东西,这是完全自定义的。我发现关于生成器的所有信息都涉及到前两种情况之一,但并不是我想要做的。当我找到hook_for
时,我立即认为那正是我需要的,但它似乎做的是相反的事情——在我的自定义生成器内部调用另一个Rails生成器(如果我想为我的自定义生成器创建一个测试文件,我会调用hook_for :test_framework
,然后在某个地方定义一个TestUnit::MyCustomGenerator
类)。
我想我可以对默认的脚手架生成器进行猴子补丁来调用我的生成器,但那感觉很肮脏。我研究了一些类似的gems,如https://github.com/Skalar/i18n-yaml-generator,但尝试将其转换为使用初始化程序和lib/generators
并不起作用。脚手架生成器运行了,但我的没有被调用。
rails g localized_scaffold User name
首先调用scaffold User name
,然后运行我的本地化生成代码。 - Rob Cameron