我有一个gem需要添加一个我尝试过调用“migration”的迁移,但这似乎忽略了我传递的参数并使用了传递给我的生成器的参数。
使用生成器添加迁移的正确方法是什么?我需要将动态名称传递给迁移,例如创建_#{first_arg}。
答案 0 :(得分:2)
我建议您使用模板进行迁移,而不是生成新模板:您只需拥有模板,替换动态元素,然后将模板实例复制到文件系统(将迁移的名称与时间一起添加)。这样,就不需要生成实际的迁移。
(如果您想要这样做,您可能想查看我就类似主题撰写的帖子:http://davidsulc.com/blog/2011/05/22/adding-a-namespaced-rails-generator-to-a-standalone-ruby-gem/)
如果你开始运行迁移命令,你可能想尝试使用Thor的run_ruby_script(http://rdoc.info/github/wycats/thor/master/Thor/Actions#run_ruby_script-instance_method)注意:Thor是用于生成器的引擎,详见http://guides.rubyonrails.org/generators.html