如何从我的自定义生成器调用rails模型生成器

时间:2011-09-16 14:52:50

标签: ruby-on-rails-3 generator

我开始编写自己的发电机了。我终于到了我看到的地方,当我创建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模型生成器,传递它的名称,并在此过程中定义一些字段。我还会在创建其他模型的同时创建其他模型,因此知道如何调用任何预定义的生成器将非常有用。

1 个答案:

答案 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