ruby - 为我正在开发的 rails ORM gem 创建 railtie 的问题

标签 ruby ruby-on-rails-3 orm redis

我正在开发一个 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/

相关文章:

ruby-on-rails - 在 Ruby on Rails 中显示有向图

java - 如何在 HQL 查询中按列表索引排序?

c# - EntityFramework ORM 错误插入

ruby - failedPrecondition : Must be a G Suite domain user. 使用服务帐户管理 ruby​​ 中的联系人

ruby-on-rails - send_file/send_data 不发送文件下载

ruby - 如何使用 resque 发送响应

javascript - Rails Ajax 渲染带有 id 的部分

ruby-on-rails - 有没有一种简单的方法可以在运行迁移之前对其进行测试?

javascript - Sequelize : Many To Many table(CROSS TABLE) associated to other table

ruby-on-rails - 防止 Rails 5 中重复的 has_many 记录