我正在嘗試使用Rails 3(測試版4)的生成器創建一個gem。我跟着these instructions,但我無法運行。問題是,當我在生成器文件中定義模塊時,生成器會使用'rails generate'列出,但無法執行,因爲找不到生成器。使用生成器創建Ruby on Rails 3 gem(包含命名空間)
從指令(不':安裝導軌產生my_gem的工作):
module MyGem
class InstallGenerator < Rails::Generators::Base
source_root File.expand_path("../templates", __FILE__)
# all public methods in here will be run in order
def add_my_initializer
template "initializer.rb", "config/initializers/my_gem_initializer.rb"
end
end
end
修改(與「軌道產生安裝工程):
class InstallGenerator < Rails::Generators::Base
source_root File.expand_path("../templates", __FILE__)
# all public methods in here will be run in order
def add_my_initializer
template "initializer.rb", "config/initializers/my_gem_initializer.rb"
end
end
不過,我想有生成器的命名空間,例如公司:gem_name:發電機,我必須使用模塊方法(我認爲)。我的猜測是它與查找和目錄結構有關,但我無法弄清楚。我試了幾種方法:
lib
-generators
--my_gem.rb
lib
-generators
--company
---my_gem.rb
lib
-generators
--company
---my_gem_name
----my_gem.rb
但沒有什麼幫助。我在互聯網上也發現了很多,但如果顯示我需要的話,則不會。
這個作品完美!不需要像David Sulc的回答那樣在另一個'rails'文件夾中嵌套。 – 2012-01-29 11:59:49