在gem中创建生成器时,我遇到了问题。当我运行rails g时,生成器显示:
Supportator:
supportator:initializer但是,当我使用rails generate supportator:initializer运行生成器时,会发生以下错误:
Could not find generator supportator:initializer.这是生成器的代码:
require 'rails/generators'
module Supportator
class InitializerGenerator < Rails::Generators::Base
source_root File.expand_path("../templates", __FILE__)
def create_initializer_file
copy_file '_browser_validator.html.haml', 'app/views/_browser_validator.html.haml'
copy_file 'en_supportator.yml' , 'config/locales/en_supportator.yml'
copy_file 'es_supportator.yml' , 'config/locales/es_supportator.yml'
end
end
end这是引擎的代码:
module Supportator
require 'rails'
class Engine < ::Rails::Engine
end
end你知道为什么会这样吗?
发布于 2014-02-28 14:31:01
变化
lib/generators/supportator/supportator_generator.rb至
lib/generators/supportator/initializer_generator.rb 您的类名是InitializerGenerator,所以文件名应该是initializer_generator.rb。否则,rails将无法找到它。
在使用rails g supportator:initializer的情况下,rails将在lib/generators/supportator目录中查找生成器文件initializer_generator.rb。
发布于 2014-02-28 14:38:34
问题在于文件的目录和名称。发送到以下生成器:
require 'rails/generators'
module Supportator
module Generators
class InstallGenerator < ::Rails::Generators::Base
source_root File.expand_path("../../../templates", __FILE__)
def create_initializer_file
copy_file '_browser_validator.html.haml', 'app/views/_browser_validator.html.haml'
copy_file 'en_supportator.yml' , 'config/locales/en_supportator.yml'
copy_file 'es_supportator.yml' , 'config/locales/es_supportator.yml'
end
end
end
end目录和文件名应该是:
/lib
/generators
/supportator
/install
/install_generator.rbhttps://stackoverflow.com/questions/22094895
复制相似问题