的安裝發電機我很新建立的Ruby寶石和我在我的第一個採取刺傷。我正在爲我的寶石編寫一個生成器,它將在我的Rails應用程序中生成一個遷移。我期待在Rails應用程序中包含gem,運行「rails g mygem:install」讓它創建遷移,然後運行「rake db:migrate」來完成所有事情。創建一個Ruby寶石
我發現了幾個不同的方式來完成類似的任務,但迄今沒有奏效。我似乎無法讓Rails應用程序找到生成器。我試過的最新指南位於:http://www.railsdispatch.com/posts/how-rails-3-enables-more-choices-part-1。
這是我目前創業板的結構是什麼樣子:
-lib/
-generators/
-templates/
-some_migration.rb
-install_generator.rb
-gemname/
-rails/
-railtie.rb
-engine.rb
-tasks/
-gemname.rake
-gemname.rb
-spec/
-gemname.gemspec
這裏是我的install_generator.rb文件看起來是這樣的:
require 'rails'
module Gemname
class InstallGenerator < ::Rails::Generators::Base
include Rails::Generators::Migration
source_root File.expand_path('../templates', __FILE__)
desc "add the migrations"
def self.next_migration_number(path)
unless @prev_migration_nr
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
else
@prev_migration_nr += 1
end
@prev_migration_nr.to_s
end
def copy_migrations
migration_template "some_migration.rb", "db/migrate/some_migration.rb"
end
end
end
我不知道是否有什麼我失蹤。我正在測試一個Rails 3.2應用程序,該應用程序的Gemfile中列出了我的gem並安裝了gem。寶石文件夾結構有什麼問題可能會阻止我的發生器顯示出來嗎?我需要在某個地方需要什麼嗎?
任何幫助表示讚賞。