2014-10-30 22 views
0

案例生成:如何让我深深的命名空间发电机工作

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,但它看起来很丑。

回答

0

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

所以,如果您的发电机是这样的:

my_plugin:some_namespace:things

你的文件结构应该是这样的:

lib/generators/my_plugin/some_namespace/things_generator.rb

超级简单。