Nim*_*ell 9 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我有一个相对较小的初始化代码,我想在运行时rails server 运行,但不是在我运行时rails generate,rails console或任何其他rails命令(包括需要环境任务的rake任务).这段代码预先填充了一些缓存并且相对昂贵,所以我真的不希望它运行在任何东西上rails s
解决方案不满意:
Foreman等人.意味着它将运行在一个不同的进程上,这个进程是(a)代表那一小段代码的顶部,(b)需要进程间通信而不是初始化程序提供的简单内存中方法.
在服务器上我通过配置乘客将一个特殊的环境变量传递给rails来解决这个问题,告诉它它在服务器上下文中运行.但是,如果可能的话,我希望它可以在所有开发人员的机器上开箱即用,而不需要记住以一种同样提供该环境变量(即IN_SERVER=true rails server)的方式运行rails服务器.
关于在运行中rails server而不是运行初始化程序时,始终询问此问题rake.但是我希望它只在服务器初始化中运行 - rake的修复很好但不全面.
您可以执行诸如重写之类的操作Rails::Server#initialize,以便它在初始化程序中调用初始化代码吗?
或者,更简单的是,只需将代码放入 中script/rails,因为每次运行时都会运行该代码,您可以轻松地在其中rails server摆弄ARGV或。ENV
| 归档时间: |
|
| 查看次数: |
1638 次 |
| 最近记录: |