私はそれを宝石にします。gem を使用してジェネレーターを作成しましたが、ジェネレーターが引き続きプラグインで動作するかどうかはわかりません。
コマンド ラインに問題がある場合は、引数は必要ないと思います。(引数が必要な場合は、提供されたテンプレートをコピーできます。他の引数が必要な場合は、迷ってしまうので、私のアドバイスは引数なしに限定されています。)
別の gem に必要な移行ファイルを生成するジェネレーター gem があります。指定されたルート名 (タイムスタンプ プレフィックスなし) を持つ移行が db/migrate にあるかどうかをチェックし、そうでない場合はそれを作成します。
これが私のコードです。この例はあなたが必要とする助けだと思います。
class ItrcClientFilesGenerator < Rails::Generators::Base
source_root(File.dirname(__FILE__) + "/../src")
desc "Generator to create migrations for needed db tables"
def create_itrc_client_files
prefix = DateTime.now.strftime("%Y%m%d%H%M")
existing_migrations =
Dir.glob("db/migrate/*itrc*").map do |path|
File.basename(path).gsub(/^\d*_/, '')
end
Dir.glob(File.dirname(__FILE__) + "/../src/*").sort.each_with_index do |src_filepath, index|
src_filename = File.basename(src_filepath)
unless existing_migrations.include?(src_filename.gsub(/^\d*_/, '')) then
this_prefix = "#{prefix}#{'%02i' % index}_"
dst_filename = src_filename.gsub(/^\d*_/, this_prefix)
copy_file(src_filename, "db/migrate/" + dst_filename)
end
end
end
end