5

これらの移行テンプレートをオーバーライドする必要があります。

https://github.com/rails/rails/blob/e20dd73df42d63b206d221e2258cc6dc7b1e6068/activerecord/lib/rails/generators/active_record/migration/templates/migration.rb およびhttps://github.com/rails/rails/blob/e20dd73df42d63b206d221e22586ecc6 activerecord/lib/rails/generators/active_record/migration/templates/create_table_migration.rb

私のレールアプリケーション内で、宝石自体ではなくレールアプリケーションからテンプレートを取得できるようにします。これまでに考えられるすべての組み合わせを試しましたが、うまくいきませんでした。

私が試したこと:

- Rails.root/lib/templates/rails/migration/migration.rb
- Rails.root/lib/templates/rails/migration_generator/migration.rb
- Rails.root/lib/rails/templates/rails/migration/migration.rb
- Rails.root/lib/rails/templates/rails/migration_generator/migration.rb
- Rails.root/lib/rails/generators/templates/rails/migration/migration.rb
- Rails.root/lib/rails/generators/templates/rails/migration_generator/migration.rb
- Rails.root/lib/rails/templates/generators/rails/migration/migration.rb
- Rails.root/lib/rails/templates/generators/rails/migration_generator/migration.rb
- Rails.root/lib/rails/generators/active_record/migration/templates/migration.rb
- Rails.root/lib/rails/generators/active_record/migration_generator/templates/migration.rb
- Rails.root/lib/rails/generators/active_record/templates/migration.rb
- Rails.root/lib/rails/generators/active_record/templates/migration.rb

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

7

私の場合の回避策を見つけました:

このコマンドでRailsジェネレーターを作成します(Railsアプリディレクトリ内)-

rails g generator my_migrator

以下を作成します。

lib/generators/my_migrator/my_migrator.rb
lib/generators/my_migrator/templates
lib/generators/my_migrator/USAGE

次に、このコードを my_generator.rb に追加して、ジェネレーターの Rails Migration ジェネレーターを拡張するために、このコードを追加しました。

require 'rails/generators'
require 'rails/generators/active_record'
require 'rails/generators/actions/create_migration'

class MyGenerator < ActiveRecord::Generators::Base
  source_root File.expand_path('../templates', __FILE__)
  argument :attributes, :type => :array, :default => [], :banner => "field[:type][:index] field[:type][:index]"

  def create_migration_file
    set_local_assigns!
    validate_file_name!
    migration_template @migration_template, "db/migrate/#{file_name}.rb"
    # more code here as per requirement.
  end

  # more code below as per requirement..
end

将来誰かに役立つことを願って、これをここに投稿しました。

于 2014-08-19T08:18:20.563 に答える