如何以编程方式调用rails migration generator?

时间:2012-05-29 12:35:35

标签: ruby-on-rails

从命令行简单运行rails g会遇到长时间的预加载问题。我想从正在运行的rails c快速生成多个迁移,所以我尝试了:

require 'rails/generators'
Rails::Generators.invoke('migration',['user_book_list_followings'],{:behavior=>:invoke, :destination_root=>Rails.root})

你问我从哪里得到:行为和:destination_root参数?好吧,当我从命令运行生成器并记录确切的参数时,我在Rails :: Generators#invoke执行点上撬了。

然而,有趣的是,我被提出错误说:

  

没有为所需选项' - ''提供价值

我错过了什么吗? (我在Rails 3.2.3上)

2 个答案:

答案 0 :(得分:1)

require 'rails/generators'
Rails::Generators.invoke("active_record:migration", ["create_something", "list_order:string", "name:string"], {migration: true, timestamps: true})

答案 1 :(得分:0)

一种加快呼叫速度g的解决方案是使用sprockets.

Spring是Rails应用程序的预加载器。通过使应用程序在后台运行,它可以加快开发速度,因此您无需在每次运行测试,执行rake任务或迁移时都启动它。