我不确定我做错了什么。我在文件中写了一个模块:config / initalizers / constants.rb
我有一个定义了一个带有常量和静态方法的模块。在视图中调用时可以访问它。当我想从其中一个环境文件中调用该方法时,会出现问题,我得到一个整体常量错误。我相信在加载环境文件后正在运行初始化程序,但我不确定放置方法或文件的最佳位置。
任何帮助都将不胜感激。
答案 0 :(得分:0)
这可以通过将常量保存为环境变量来解决。对于开发,我可以推荐Dotenv gem。当然,它也需要添加到生产服务器环境中,但Heroku等使这很容易。
在根rails目录中的新创建的CONSTANT_NAME=stringofcharacters1234
文件中添加.env
之类的内容,每次启动rails s
时,它都会解析该文件,并通过以下方式使这些变量可供您访问: ENV
哈希,您可以在ENV["CONSTANT_NAME"]
访问它,只要它需要。{/ p>
我也更喜欢使用ENV.fetch("CONSTANT_NAME")
,因为如果它是空的,会引发错误,如果由于空的env变量而导致某些内容失败,则会有助于调试。
希望这是你正在寻找的东西!