【问题标题】:Running other generator within a generator在生成器中运行其他生成器
【发布时间】:2011-10-10 08:38:55
【问题描述】:

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

rails g stager:scaffold User

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

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

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

【问题讨论】:

    标签: ruby-on-rails-3 thor


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我从来没有听说过 hook_for,所以谢谢你。您的链接将我推向了正确的方向。我需要使用“调用”。它现在就像一个魅力! :)
    • 说实话,我在这里做研究之前并不知道hook_for。我知道不知何故另一个生成器正在被调用,我只是不知道如何。现在我知道了,感谢您的提问!
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多