发电机不在宝石中工作

Mau*_*loa 2 ruby ruby-on-rails generator rails-engines ruby-on-rails-4

在gem中创建生成器时遇到问题.当我运行rails g发电机时显示:

Supportator:
  supportator:initializer
Run Code Online (Sandbox Code Playgroud)

但是当我运行发生器rails generate supportator:initializer时发生以下错误:

Could not find generator supportator:initializer.
Run Code Online (Sandbox Code Playgroud)

这是生成器的代码:

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
Run Code Online (Sandbox Code Playgroud)

这是引擎的代码:

module Supportator
  require 'rails'
  class Engine < ::Rails::Engine
  end
end
Run Code Online (Sandbox Code Playgroud)

你知道为什么会这样吗?

Kir*_*rat 6

更改

lib/generators/supportator/supportator_generator.rb
Run Code Online (Sandbox Code Playgroud)

lib/generators/supportator/initializer_generator.rb 
Run Code Online (Sandbox Code Playgroud)

你的类名InitializerGenerator应该是文件名initializer_generator.rb.否则,rails将无法找到它.

在你的情况下rails g supportator:initializer,rails会initializer_generator.rblib/generators/supportator目录中查找生成器文件.