【问题标题】:How to invoke generators from code?如何从代码中调用生成器?
【发布时间】:2011-05-04 03:32:26
【问题描述】:

我写了自己的生成器,从控制台它像这样启动

rails generate ead_document TechnicalOpinion --document_type_id=1

它创建模型和迁移。我想在不使用 ruby​​ 系统命令的情况下从我的控制器执行生成器。有什么办法吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 generator


    【解决方案1】:

    解决方案似乎很简单:

    控制器中的这段代码

    Rails::Generators.invoke("ead_document", [@document_type.table_name.classify, "--document_type_id=#{@document_type.id}"])
    

    和控制台中的这个是一样的

    rails generate ead_document TechnicalOpinion --document_type_id=1
    

    如果您想在控制器之外使用它,您可能还需要明确要求它:

    require 'rails/generators'
    

    【讨论】:

    • 能否请您就 API 问题提出一个新问题,而不是回答问题?这样我们就可以搜索到问题和答案。
    • 我用不同的角度写了一篇博客:我写了一篇关于它的文章:medium.com/@kdiogenes/…
    • 这个解决方案有一个大问题,选项数组没有从提供的参数中填充。我仍在试图找出原因。我尝试设置 ARGV.replace(args) 仍然没有运气。有什么建议吗?
    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2011-07-19
    相关资源
    最近更新 更多