我正在开发一个 Ruby gem,Ampere,它充当 Redis 数据库的 ORM。我正在尝试支持它的 Rails 集成,并且能够绑定(bind)初始化程序和控制台 Hook ,但我的生成器还不能工作。我有一个生成器 ampere:config
,它安装了默认配置 YAML 文件,以及模型生成器的替代品。
当我将我的 gem 安装到测试 Rails 应用程序中时,当我在命令行上运行 rails generate
时,ampere:config
生成器会出现在列表中,但是当我输入 rails g ampere:config
,我得到:
Could not find generator ampere:config.
除此之外别无其他。我的生成器位于 gem 中的“lib/rails/generators/config/”中,显然 Rails 知道它,因为它出现在 rails g
列表中,但有些地方不对。如果有人可以提供帮助或知道比 Rails 指南更好的文档(至少可以说是稀疏的),我们将不胜感激。
最佳答案
好的,我终于明白了。为了使生成器工作,它们必须使用模板的相对路径调用 source_root
,并且它们必须位于 lib/rails/generators/your_gem_name/
中,然后your_gem_name/
中的目录结构是您阅读文档(或在 Rails 项目中运行 rails g generator
)时所期望的。
文档对此不是很清楚,所以有点令人困惑,但在查看了几个示例后,我尝试了这个并且成功了。
关于ruby - 为我正在开发的 rails ORM gem 创建 railtie 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872361/