在发电机内运行其他发电机

时间:2011-10-10 08:38:55

标签: ruby-on-rails-3 thor

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

rails g stager:scaffold User

我创建了另一个gem来生成演示者。我想使用这个gem来为每个脚手架生成一个演示者。目前我正在做以下事情来实现这一目标:

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

问题是,当调用此生成器时,它似乎重新加载Rails环境,使其有点慢。我想知道是否有更好的方法在发电机内调用另一台发电机。那么:有没有更好的方法来创建Rails生成器? ;)

1 个答案:

答案 0 :(得分:4)

您必须在生成器类中定义hook_for另一个生成器。 ScaffoldGenerator可能就是最好的例子,has a hook for the scaffold_controller generator.

如果你想将参数传递给你的生成器,那么最好在这个文件中使用类似hook_for例子的资源和样式表引擎。