initialize_on_precompile究竟用于什么?

时间:2017-01-09 01:17:08

标签: ruby-on-rails ruby-on-rails-3 heroku ruby-on-rails-5

我无法理解initialize_on_precompile的用途。什么完全是否意味着它是假的(特别是与Heroku有关)?这是真的是什么意思?

如果这个问题过于宽泛/模糊,我很难道歉,但我似乎无法在任何地方找到答案。

1 个答案:

答案 0 :(得分:4)

此选项在Rails 3.x之前可用,因为当您运行rake assets:precompile时,它会初始化应用程序并尝试连接到数据库。因此,将此选项设置为false会阻止它。因此,如果您遇到与数据库相关的任何问题rake assets:precompile将无法正常运行,则此选项可确保其正常工作。

来自Rails Git Repo:

initialize_on_precompile更改告诉预编译任务在不调用Rails的情况下运行。这是因为预编译任务默认在生产模式下运行,并将尝试连接到指定的生产数据库。请注意,使用此选项在本地编译时,您无法在依赖于Rails资源(例如数据库)的管道文件中拥有代码。

Rails 4.x中,此选项已被删除,不再需要。 Rails 4现在总是在预编译资产之前加载初始化程序和数据库配置

提交来源: https://github.com/rails/rails/commit/2d5a6de