如何使深度命名空间生成器工作

时间:2014-10-30 17:00:34

标签: ruby-on-rails

示例生成器:

module MyPlugin
  module Generators
    module SomeNamespace
      class ThingsGenerator < Rails::Generators::Base
        # stuff
      end
    end
  end
end

按预期rails g输出:

MyPlugin:
  my_plugin:some_namespace:things

这应该有用,对吗?错误:

> rails g my_plugin:some_namespace:things
Could not find generator my_plugin:some_namespace:things

那么,发生了什么? Rails可以看到生成器,它也可以通过Rails::Generators::TestCase完全测试。

有什么想法?我总是可以制作一个my_plugin:some_namespace_things,但它看起来更加丑陋。

1 个答案:

答案 0 :(得分:0)

好的,所以这就是它。出于某种原因,rails使用不同的方法来列出和执行生成器。我的问题是文件名。

所以,如果你的发电机看起来像这样:

my_plugin:some_namespace:things

您的文件结构应如下所示:

lib/generators/my_plugin/some_namespace/things_generator.rb

超级简单。