Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/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 NameError:运行rake db:create(YAML)时未初始化contant配置_Ruby On Rails_Ruby_Rake_Yaml - Fatal编程技术网

Ruby on rails NameError:运行rake db:create(YAML)时未初始化contant配置

Ruby on rails NameError:运行rake db:create(YAML)时未初始化contant配置,ruby-on-rails,ruby,rake,yaml,Ruby On Rails,Ruby,Rake,Yaml,我正在尝试让一个应用程序的本地实例运行,我一直在 NameError: uninitialized constant CONFIG 当我运行bundle exec rake db:setup时 以下是my environment.rb文件中的CONFIG外观: CONFIG = YAML.load(File.read('/etc/twkeys/university/course_scheduler/config.yml')).freeze 当我在控制台中测试上述内容时,我得到 NameErr

我正在尝试让一个应用程序的本地实例运行,我一直在

NameError: uninitialized constant CONFIG
当我运行bundle exec rake db:setup时

以下是my environment.rb文件中的
CONFIG
外观:

CONFIG = YAML.load(File.read('/etc/twkeys/university/course_scheduler/config.yml')).freeze
当我在控制台中测试上述内容时,我得到

NameError: uninitialized constant YAML 
如果在控制台中运行
require'yaml'
,然后再次运行上述操作,
CONFIG
似乎初始化为ok


我曾尝试将
require'yaml'
放入environment.rb和其他各种配置文件中,但没有成功。

这是因为
environment.rb
文件不是从Rake任务加载的。您可以通过查看
Rakefile
轻松跟踪它。它加载
config/application
文件,而不是
config/environment
。执行Rake任务不需要初始化应用程序


最简单的解决方案是将
CONFIG
常量移动到模块下的
CONFIG/application
文件中(记住,在其他地方使用它可能需要名称空间)。

这是因为
environment.rb
文件不是从Rake任务加载的。您可以通过查看
Rakefile
轻松跟踪它。它加载
config/application
文件,而不是
config/environment
。执行Rake任务不需要初始化应用程序


最简单的解决方案是将
CONFIG
常量移动到模块下的
CONFIG/application
文件中(记住,在其他地方使用它可能需要名称空间)。

您的environment.rb文件中需要它吗?如果不需要,请将该行放在CONFIG/initializers/文件夹的文件中。@fanta谢谢。我试着把它放在environment.rb和application.rb中,以及config/initializers/中提到configoh的每个文件中,所以,你需要在初始化器文件中使用config常量?,然后试着把这一行放在初始化器文件中,这是文件夹中的第一行,比如说你把这个文件命名为00_config_initializer.rb,因此,它会在需要该常量的所有其他初始值设定项文件之前运行。谢谢您的建议@fanta仍然会收到相同的错误:/you needed in your environment.rb file?如果不需要,请将该行放在config/initializers/文件夹中的一个文件中。@fanta谢谢。我试着把它放在environment.rb和application.rb中,以及config/initializers/中提到configoh的每个文件中,所以,你需要在初始化器文件中使用config常量?,然后试着把这一行放在初始化器文件中,这是文件夹中的第一行,比如说你把这个文件命名为00_config_initializer.rb,因此,它会在需要该常量的所有其他初始值设定项文件之前运行。感谢@fanta的建议,但仍然会出现相同的错误:/