Ruby on rails 3 以编程方式调用活动记录生成器:如何传递父参数?

Ruby on rails 3 以编程方式调用活动记录生成器:如何传递父参数?,ruby-on-rails-3,generator,Ruby On Rails 3,Generator,在所有这些情况下,将忽略父参数: Rails::Generators.invoke("active_record:model", [name, ["list_order:string", "name:string"], ["parent=Ecm::Toplist::Base"]]) Rails::Generators.invoke("active_record:model", [name, ["list_order:string", "name:string"], ["--parent=Ecm:

在所有这些情况下,将忽略父参数:

Rails::Generators.invoke("active_record:model", [name, ["list_order:string", "name:string"], ["parent=Ecm::Toplist::Base"]])
Rails::Generators.invoke("active_record:model", [name, ["list_order:string", "name:string"], ["--parent=Ecm::Toplist::Base"]])
Rails::Generators.invoke("active_record:model", [name, ["list_order:string", "name:string"], "parent=Ecm::Toplist::Base"])
Rails::Generators.invoke("active_record:model", [name, ["list_order:string", "name:string"], "--parent=Ecm::Toplist::Base"])
这是一个bug,还是我遗漏了什么?

正确的方法是

Rails::Generators.invoke("active_record:model", [name, "list_order:string", "name:string"], { parent: "Ecm::Toplist::Base"})
但是要小心,根据您指定的:parent,迁移将不会被调用

使用迁移生成模型的正确方法是

Rails::Generators.invoke("active_record:model", [name, "list_order:string", "name:string"], {migration: true, timestamps: true})

怎么样
Rails::Generators.invoke(“active_record:model”[name,“list\u order:string”,“name:string”,“--parent=Ecm::Toplist::Base”])
在传递如下参数时,它不会创建迁移:(但实际上,它正确地设置了父项。这可能是一个bug吗?