仅为服务器和控制台加载 Railtie
我正在为 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论