2

我创建了一个脚手架 gem,它使用另一个 gem 来生成演示者。我使用 Rails 3 生成器创建了这个脚手架生成器。它是这样工作的:

rails g stager:scaffold User

我创建了另一个 gem 来生成演示者。我想使用这个 gem 为每个脚手架生成一个演示者。目前,我正在执行以下操作来完成此操作:

run "rails g exhibit:presenter #{scaffold_name}"

问题是在调用这个生成器时它似乎重新加载了 Rails 环境,使它有点慢。我想知道是否有更好的方法在生成器中调用另一个生成器。那么:有没有更好的方法来创建 Rails 生成器 inception?;)

4

1 回答 1

4

您必须hook_for在生成器类中定义另一个生成器。这ScaffoldGenerator可能是最好的例子,因为它有一个用于生成器的钩子scaffold_controller

如果您想将参数传递给您的生成器,最好使用hook_for此文件中更下方的示例用于资产和样式表引擎。

于 2011-10-10T09:14:34.070 回答