如何从代码中调用生成器?

Adr*_*fin 12 ruby-on-rails generator ruby-on-rails-3

我写了自己的发电机,从这个发射的控制台开始

rails generate ead_document TechnicalOpinion --document_type_id=1
Run Code Online (Sandbox Code Playgroud)

它创建模型和迁移.我想从我的控制器执行生成器而不使用ruby系统命令.有没有办法做到这一点?

Adr*_*fin 18

解决方案似乎很简单:

这个代码在控制器中

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

在控制台中与此相同

rails generate ead_document TechnicalOpinion --document_type_id=1
Run Code Online (Sandbox Code Playgroud)

  • 您能否打开一个关于API问题的新问题,而不是回答问题?这样我们可以搜索问题和答案. (3认同)