Gem settingslogic 在 application.rb 中配置全局变量会报错

zqalyc · February 11, 2014 · Last by mentor_feng replied at February 12, 2014 · 4160 hits
application.yml:
defaults: &defaults
  files:
    host: '192.168.1.1'
    port: '8080'

development:
  <<: *defaults

production:
  files:
    host: '192.168.1.1'
    port: '8080'

settings.rb:
class Settings < Settingslogic
  source "#{Rails.root}/config/application.yml"
  namespace Rails.env
end
application.rb:

FILE=Settings.fles

application.rb 会报错:

Uncaught exception: uninitialized constant Settings

Settings::Setting.files

拿不到是肯定的.. FILE=Settings.fles 才在第二步,这时候 Rails 核心还没启动完成,ENV 都没加载。你的代码肯定也还没加载进来。

#1 楼 @leopku 还是报同样的错

#2 楼 @saiga 那全局变量应该放在哪个文件里?

原因见 2 楼 @saiga 解决方法:1、在 application.rb 里写死;2、将配置读取部分延后,比如:单独放在 initializers 目录下

#4 楼 @zqalyc

# 手动加载 settings.rb
require File.expand_path('../../app/settings/settings.rb', __FILE__)

FILE=Settings.fles
You need to Sign in before reply, if you don't have an account, please Sign up first.