在我的项目中,我想在配置或yml文件中放置一些配置细节,如密钥,一些独特的代码,以便在处理时访问。以及如何在UI或JS文件中访问该变量
我无法将值保留在database.yml
或any config file
中。
其中一个假设是将内部放在application.yml
中config/application.yml
defaults: &defaults
email: test@example.com
secret: example_test
答案 0 :(得分:2)
您可以创建一个初始化程序来加载YML文件,根据您当前的环境对其进行解析,并将结果保存在全局变量中。
例如:
配置/ application.yml
defaults: &defaults
email: example@example.com
secret: secret
test:
<<: *defaults
secret: another_secret
development:
<<: *defaults
production:
<<: *defaults
email: production@example.com
secret: production_secret
然后,您可以使用此初始化程序加载此配置:
配置/初始化/ app_config.rb
class ConfigurationFileNotFound < RuntimeError ; end
$CONF = begin
YAML.load_file(Rails.root.join('config', 'application.yml'))[Rails.env].symbolize_keys
rescue Errno::ENOENT => e
raise ConfigurationFileNotFound, 'config/application.yml was not found. You can find an example of it in config/application.yml-example'
end
现在,您的配置应该可以使用全局变量$ CONF
在应用程序的任何位置使用$CONF[:email]
如果你有一个大的配置,你应该创建一个单独的类并让它初始化你的yml文件并在其中的属性中加载它的键和值,然后使用该类来访问所需的配置。
答案 1 :(得分:0)
有几种方法可以做到这一点。
ENV