仅为服务器和控制台加载 Railtie

发布于 2024-11-16 12:49:22 字数 394 浏览 3 评论 0原文

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

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

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

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

I am creating a gem for a Rails project and I got some troubles to
understand how generators and initializers work.
I would like to
initialize my module loading some stuff from the database from models
related to tables my gem should create with a migration file.

Problem is : if I create a Railtie and put it my gem lib directory,
when I try to run my generator (to create the migration template file
for example), it's already trying to run the Railtie even though
tables required don't exist yet (because the migration file has not been executed yet).

How to restrict the "scope" of the Railtie ? I would like it only to
run when booting Rails from a server (webrick, thin, ...) or from the
console, but not for any rake tasks (including generators). I think
that rake tasks (like generators) load the entire Rails environment
and my problem should come from that.
Is there a simpler way to do what I want ?

any help or advice appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文