【发布时间】:2011-05-04 03:32:26
【问题描述】:
我写了自己的生成器,从控制台它像这样启动
rails generate ead_document TechnicalOpinion --document_type_id=1
它创建模型和迁移。我想在不使用 ruby 系统命令的情况下从我的控制器执行生成器。有什么办法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 generator
我写了自己的生成器,从控制台它像这样启动
rails generate ead_document TechnicalOpinion --document_type_id=1
它创建模型和迁移。我想在不使用 ruby 系统命令的情况下从我的控制器执行生成器。有什么办法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 generator
解决方案似乎很简单:
控制器中的这段代码
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'
【讨论】: