我正在开发一个Ruby gem,Ampere,它充当Redis数据库的ORM。我试图支持它的Rails集成,并且能够绑定初始化器和控制台钩子,但我的生成器还没有工作。我有一个生成器,ampere:config
可以安装默认配置YAML文件,也可以替换模型生成器。
当我将gem安装到测试Rails应用程序中时,ampere:config
生成器在命令行上运行rails generate
时显示在列表中,但是当我键入rails g ampere:config
时,我得到:
Could not find generator ampere:config.
,没有别的。我的生成器位于gem中的“lib / rails / generators / config /”中,显然Rails知道它,因为它出现在rails g
列表中,但有些东西不对。如果有人可以帮助或知道一些比Rails指南更好的文档,这些指南至少可以说是稀疏的,我们非常感激。
答案 0 :(得分:1)
好的,我终于明白了。为了让生成器工作,他们必须使用模板的相对路径调用source_root
,并且必须使用lib/rails/generators/your_gem_name/
,然后your_gem_name/
中的目录结构就是你所要的希望阅读文档(或在Rails项目中运行rails g generator
)。
文档对此并不十分清楚,所以有点令人困惑,但在看了几个例子之后我尝试了这个并且它有效。