使用初始化器的Rails常量



我不知道我做错了什么。我在一个文件中写了一个模块:config/initizers/constants.rb

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

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

你在根rails目录下新创建的.env文件中添加CONSTANT_NAME=stringofcharacters1234之类的东西,每次启动rails s时,它都会解析该文件,并通过ENV散列使这些变量对你可用,在那里你可以像ENV["CONSTANT_NAME"]一样访问它。

我也更喜欢使用ENV.fetch("CONSTANT_NAME"),因为如果它是空的,它会引发一个错误,如果因为空的env变量而失败,有助于调试。

希望这是你正在寻找的!

相关内容

  • 没有找到相关文章

最新更新