【问题标题】:Rails Constants using Initializers使用初始化器的 Rails 常量
【发布时间】:2015-05-28 16:11:00
【问题描述】:

我不确定我做错了什么。我在一个文件中写了一个模块:config/initializers/constants.rb

我定义了一个带有常量和静态方法的模块。在视图中调用时可以访问它。当我想从其中一个环境文件中调用该方法时,会出现问题,在该文件中我得到一个未初始化的常量错误。我相信初始化程序是在加载环境文件后运行的,但我不确定将方法或文件放在哪里最好。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails-3 initialization constants


    【解决方案1】:

    这可以通过将常量保存为环境变量来解决。对于开发,我可以推荐Dotenv gem。当然,它也需要添加到生产服务器环境中,但是 Heroku 等使这变得非常容易。

    您在根 rails 目录中新创建的 .env 文件中添加类似 CONSTANT_NAME=stringofcharacters1234 的内容,每次启动 rails s 时,它都会解析该文件并通过 ENV 哈希使您可以访问这些变量,其中你可以在任何需要的地方像ENV["CONSTANT_NAME"]一样访问它。

    我也更喜欢使用ENV.fetch("CONSTANT_NAME"),因为如果它是空的,这将引发错误,有助于调试由于环境变量为空而导致的失败。

    希望这就是你要找的东西!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多