【问题标题】:Where does config.to_prepare should go in Rails 3.1 app?Rails 3.1 应用程序中的 config.to_prepare 应该放在哪里?
【发布时间】:2011-12-07 01:36:18
【问题描述】:

我正在尝试使用一个应该一直在开发中重新加载并在生产中加载一次的文件。

我正在尝试使用

config.to_prepare do
  require File.expand_path('config/configatron.rb')
end

这允许在 dev 中重新加载我的配置器设置。但是它不起作用。意味着它只加载一次,不会在页面刷新时重新加载。根据文档,它应该。现在我在我的 application.rb 中有它 - 那是正确的地方吗?如果是的话,有人我做错了什么吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails-3 configuration


    【解决方案1】:

    我将我的 to_prepare 块放在初始化器中。

    您的代码有问题。

    来自 require 文档:http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-require

    已加载文件的绝对路径添加到$LOADED_FEATURES ($")。如果文件的路径已经出现在$"中,则不会再次加载该文件。例如,要求'a'; require './a' 不会再次加载 a.rb。

    即使在每次重新加载环境之前调用您的块 require 也不会再次加载您的 configuration.rb 文件。

    您可以尝试使用 require_dependency How are require, require_dependency and constants reloading related in Rails?

    重写您的代码,而不是使用 to_prepare

    【讨论】:

    • 我正在使用 Ruby 1.9.2 p 180 是否适用于该版本?
    猜你喜欢
    • 2023-03-17
    • 2010-12-14
    • 2016-09-20
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多