Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用初始值设定项的Rails常量_Ruby On Rails 3_Initialization_Constants - Fatal编程技术网

Ruby on rails 3 使用初始值设定项的Rails常量

Ruby on rails 3 使用初始值设定项的Rails常量,ruby-on-rails-3,initialization,constants,Ruby On Rails 3,Initialization,Constants,我不确定我做错了什么。我在一个文件中编写了一个模块:config/initalizers/constants.rb 我定义了一个带有常量和静态方法的模块。在视图中调用时可以访问它。当我想从其中一个环境文件中调用该方法时,就会出现问题,在该文件中我得到一个单位化常量错误。我相信初始值设定项是在加载环境文件之后运行的,但我不确定该方法或文件的最佳位置 任何帮助都将不胜感激。这可以通过将常数保存为环境变量来解决。对于发展,我可以推荐。当然,它也需要添加到生产服务器环境中,但是Heroku等使这非常容易

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

我定义了一个带有常量和静态方法的模块。在视图中调用时可以访问它。当我想从其中一个环境文件中调用该方法时,就会出现问题,在该文件中我得到一个单位化常量错误。我相信初始值设定项是在加载环境文件之后运行的,但我不确定该方法或文件的最佳位置


任何帮助都将不胜感激。

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

在根rails目录中新创建的
.env
文件中添加类似
CONSTANT\u NAME=stringofcharacters1234的内容,每次启动
rails s
时,它都会解析该文件,并通过
env
散列让您可以访问这些变量,就像
env[“CONSTANT\u NAME”]
需要的地方

我还更喜欢使用
ENV.fetch(“CONSTANT_NAME”)
,因为如果它是空的,这将引发一个错误,如果由于一个空的ENV变量而导致某些操作失败,则有助于调试

希望这就是你要找的