2

我正在为 Rails 项目创建一个 gem,但在理解生成器和初始化程序的工作方式时遇到了一些麻烦。我想初始化我的模块,从与我的 gem 应该使用迁移文件创建的表相关的模型中从数据库中加载一些东西。

问题是:如果我创建一个 Railtie 并将其放在我的 gem lib 目录中,当我尝试运行我的生成器(例如创建迁移模板文件)时,它已经在尝试运行 Railtie,即使所需的表还不存在(因为尚未执行迁移文件)。

如何限制 Railtie 的“范围”?我希望它仅在从服务器(webrick,thin,...)或控制台启动 Rails 时运行,但不适用于任何 rake 任务(包括生成器)。我认为 rake 任务(如生成器)会加载整个 Rails 环境,我的问题应该来自于此。有没有更简单的方法来做我想做的事?

任何帮助或建议表示赞赏。

4

0 回答 0