5

Rails でモデル ジェネレーターを拡張しようとしています ( rails g model )。基本的に、私のジェネレーターはモデル ジェネレーターと同じことを行う必要がありますが、2 つの追加ファイルをコピーします。そのような単純な。

非常に有益なRailscast #218 ( http://railscasts.com/episodes/218-making-generators-in-rails-3 ) を確認しましたが、ジェネレーターの拡張に関する情報は見つかりませんでした。

Rails のソースコードを確認すると、モデル ジェネレーターは lib/rails/generators/rails/model/model_generator.rb に Rails::Generators::ModelGenerator として定義されているようです。

ジェネレーターでこのクラスを拡張しようとしましたが、結果は次のようになりました。

Error: uninitialized constant Rails::Generators::ModelGenerator.

そして、このファイルを要求する試みは成功しませんでした。

そこで、ここで立ち止まって質問することにしました。ジェネレーターを拡張する適切な方法は何ですか?

4

2 に答える 2

1

フックと呼び出しを見てください。

class MyGenerator < Rails::Generators::Base
  def create_my_file
    # Do your generators stuff
    create_file "config/initializers/my.rb", "# Add content here"
    # Create model
    invoke("model", ["model_name", "arg1", "arg2"])
  end
end

この助けを願っています。

于 2013-04-29T09:43:31.183 に答える