Ruby on rails 4 如何设置rails应用程序全局可用常量
我试图定义一个全局常量,我可以从应用程序中的任何地方访问它。为此,我在initializer中创建了一个包含以下内容的文件:Ruby on rails 4 如何设置rails应用程序全局可用常量,ruby-on-rails-4,Ruby On Rails 4,我试图定义一个全局常量,我可以从应用程序中的任何地方访问它。为此,我在initializer中创建了一个包含以下内容的文件: APP_CONFIG = YAML.load_file(Rails.root + "config/app_config.yml").with_indifferent_access 从哈姆的角度看,我正在这样做 - if APP_CONFIG[:param] %b HOLA MUNDO 但它说APP_CONFIG没有定义 我在两个地方都试过使用: @@APP_
APP_CONFIG = YAML.load_file(Rails.root + "config/app_config.yml").with_indifferent_access
从哈姆的角度看,我正在这样做
- if APP_CONFIG[:param]
%b HOLA MUNDO
但它说APP_CONFIG没有定义
我在两个地方都试过使用:
@@APP_CONFIG
@APP_CONFIG
$APP_CONFIG
没有任何效果,我还尝试了:
module MyApp
class Application
APP_CONFIG = .....
end
end
从以下方面来看:
MyApp::Application::APP_CONFIG[:param]
这也是一个错误
未初始化常量MyApp::Application::APP_CONFIG将其封装在模块中会更好。大概是这样的:
require 'yaml'
module AppConfig
class << self
def settings
@settings ||= hash.with_indifferent_access
end
def path
File.join(Rails.root, 'config' , 'app_config.yml')
end
def hash
YAML.load_file(path)
end
end
end
使用该模块,您可以分多个步骤收集数据,并轻松测试每个步骤。这也将更容易扩展行为
我会把它放在app/tools/app_config.rb之类的东西中,如果它放在app/tools/上,它会自动加载到rails 4上?是的。应用文件夹中的所有文件都在应用加载时加载。或者,您可以将其放在lib文件夹中,并将lib添加到应用程序配置的加载路径中。Ha!我今天在WCC用过这个:)
puts AppConfig.settings['foo']