Ruby on rails 如何覆盖Rails';默认迁移生成器模板
我需要覆盖这些迁移模板: 及 在我的rails应用程序内部,这样他们就可以从rails应用程序而不是gem本身获取模板。到目前为止,我已经尝试了所有可能的组合,但没有成功 我所尝试的:Ruby on rails 如何覆盖Rails';默认迁移生成器模板,ruby-on-rails,ruby-on-rails-3,activerecord,rails-generators,Ruby On Rails,Ruby On Rails 3,Activerecord,Rails Generators,我需要覆盖这些迁移模板: 及 在我的rails应用程序内部,这样他们就可以从rails应用程序而不是gem本身获取模板。到目前为止,我已经尝试了所有可能的组合,但没有成功 我所尝试的: - Rails.root/lib/templates/rails/migration/migration.rb - Rails.root/lib/templates/rails/migration_generator/migration.rb - Rails.root/lib/rails/templates/r
- 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
有人能给我指出正确的方向吗?我想出了一个解决方案: 我用这个命令创建了一个Rails生成器(在我的Rails应用程序目录中)- 它创造了:
lib/generators/my_migrator/my_migrator.rb
lib/generators/my_migrator/templates
lib/generators/my_migrator/USAGE
然后,我将此代码添加到my_generator.rb中,以扩展生成器中的rails迁移生成器:
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
要求“轨道/发电机”
需要“轨道/发电机/活动记录”
需要“rails/generators/actions/create_迁移”
类MyGenerator:数组,:default=>[],:banner=>“字段[:type][:index]字段[:type][:index]”
def创建_迁移_文件
设置\u本地\u分配!
验证文件名!
migration_template@migration_template,“db/migrate/#{file_name}.rb”
#根据需要在此处添加更多代码。
结束
#根据要求,更多代码如下。。
结束
把这个贴在这里,希望将来有一天能对别人有所帮助
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