我创建了一个脚手架gem,它使用另一个gem来生成演示者。我使用Rails 3生成器创建了这个脚手架生成器。它的工作原理如下:
rails g stager:scaffold User
我创建了另一个gem来生成演示者。我想使用这个gem来为每个脚手架生成一个演示者。目前我正在做以下事情来实现这一目标:
run "rails g exhibit:presenter #{scaffold_name}"
问题是,当调用此生成器时,它似乎重新加载Rails环境,使其有点慢。我想知道是否有更好的方法在发电机内调用另一台发电机。那么:有没有更好的方法来创建Rails生成器? ;)
答案 0 :(得分:4)
您必须在生成器类中定义hook_for
另一个生成器。 ScaffoldGenerator
可能就是最好的例子,has a hook for the scaffold_controller
generator.
如果你想将参数传递给你的生成器,那么最好在这个文件中使用类似hook_for
例子的资源和样式表引擎。