私は単純な人です。コントローラーからアクセスできるYAML設定ファイルがほしいだけです。それで全部です。Rails 3 - 設定ファイルを複雑にしていますか?
まず、config/app_config.yml
を作成しました。これには設定値が含まれています。ここまでは順調ですね。その後
、Iに含まれ、lib/app_config.rb
を作成しました:
module AppConfig
def self.config
@@config ||= {}
end
def self.config=(config)
@@config = config
end
end
は最後に、私が含まれ、config/initializers/load_app_config.rb
を作成しました:
# the ./ is necessary for some reason, though no examples online use it...
require './lib/app_config'
AppConfig.config = YAML.load_file("#{Rails.root.to_s}/config/app_config.yml")
私は完全にload_app_config.rb
をスキップして、他のいくつかの方法をAppConfig.config
割り当てる必要があります(おそらくモジュール自体の内部に)?
私はそれがあまりにも複雑になってるようです。..
これは私の最初のアプローチでした。しかし、私がこれを試してみると、私のコントローラから 'AppConfig'にアクセスすると、初期化されていない定数エラーが発生します。私はもう一度試してみて、同じエラーを受けました。 'AppConfig'は特別な場所で定義されていますか? – ClosureCowboy
AppConfigはapp_config.rbで定義されています。イニシャライザが実行されると、イニシャライザが使用可能になります。イニシャライザが正しくロードされているかどうかを調べるには、YAML.load(Files.read(Rails.root + 'config' + 'config.yml'))を設定してみてください。[Rails.env] .with_indifferent_accessそれを 'config'などに割り当てることができます。 config [:attribute] –
にアクセスしてみてください。/ libにあるものの代わりに/ config/initializersにapp_config.rbがあることを確認することもできます –