我开始编写自己的发电机了。我终于到了我看到的地方,当我创建rails应用程序时,我做了很多相同的事情。
这是我的发电机到目前为止的样子。
class FbScaffoldGenerator < Rails::Generators::Base
source_root File.expand_path('../templates', __FILE__)
argument :model_name, :type => :string, :default => "fb_item"
def create_models
end
private
def mod_name
model_name.underscore
end
end
你可以说我没有走得太远。在create_models方法中,我想获取传入的model_name并调用rails模型生成器,传递它的名称,并在此过程中定义一些字段。我还会在创建其他模型的同时创建其他模型,因此知道如何调用任何预定义的生成器将非常有用。
答案 0 :(得分:0)
使用
def create_models
invoke :model, [model_name, ["name:string", "age:integer:index"]]
end
如果你想跳过某些部分(例如,灯具)你可以做
def create_models
invoke :model, [model_name, ["name:string", "age:integer:index"]], ["--skip-fixtures"]
end