3

我的应用程序经常遇到问题。基本上,我有一些我希望它在第一次启动服务器时运行的代码,以检查是否已定义某些事情,例如时间表、数据库中的特定列、文件的存在等,然后采取相应的行动。

但是,我绝对不希望在启动 Rake 任务(或执行“生成”等操作时运行此代码。例如,我不希望在 Rake 下检查数据库字段,因为 Rake 任务可能是定义字段的迁移。另一个例子,我有一个 Resque 的动态时间表,但我不想在启动 Resque 工作人员时加载它。等等等等......

而且我绝对需要 Rake 任务来加载环境!

有什么方法可以确定应用程序是如何加载的?我确实想在通过'rails server'、Apache/Passenger、控制台等加载代码时运行代码,但在其他时候不运行。

如果不是,您可以在哪里或如何定义此代码以确保它仅以上述方式执行?

4

1 回答 1

0

最简单的方法是检查初始化代码中的一些环境变量,例如

if ENV['need_complex_init']
  do_complex_init     
end

并运行应用程序need_complex_init=1 rails s

于 2013-08-13T08:21:27.170 回答