Ruby on rails 3 我在Rails 3中的APP_CONFIG yml文件中做错了什么?

Ruby on rails 3 我在Rails 3中的APP_CONFIG yml文件中做错了什么?,ruby-on-rails-3,Ruby On Rails 3,使用Rails 3.1.1。这是我在config/app_config.yml中的YAML文件 这是我的配置/application.rb 我试图将站点url放入我的模板中,甚至放弃它,但它仍然返回零: <%= abort(APP_CONFIG[:site_url]) %> #returns: can't convert nil into String 我做错了什么?谢谢 根据yml文件的格式,生成的解析哈希如下所示: {"development"=>{"site_url"

使用Rails 3.1.1。这是我在config/app_config.yml中的YAML文件

这是我的配置/application.rb

我试图将站点url放入我的模板中,甚至放弃它,但它仍然返回零:

<%= abort(APP_CONFIG[:site_url]) %> #returns: can't convert nil into String 

我做错了什么?谢谢

根据yml文件的格式,生成的解析哈希如下所示:

{"development"=>{"site_url"=>"http://localhost:3000"}}
第二行中的缩进使“site_url”在层次结构上属于“development”。此外,它们不能通过符号直接访问

因此,访问站点的url的方式,你有yml格式将是

APP_CONFIG['development']['site_url']

我必须稍微移动代码并为其添加一个环境:

# config/application.rb
require File.expand_path('../boot', __FILE__)

require 'rails/all'

# load app_config.yml  
require 'yaml'  
APP_CONFIG = YAML.load(File.read(File.expand_path('../app_config.yml', __FILE__)))[Rails.env]
然后全局访问常数:

APP_CONFIG['site_url']
# config/application.rb
require File.expand_path('../boot', __FILE__)

require 'rails/all'

# load app_config.yml  
require 'yaml'  
APP_CONFIG = YAML.load(File.read(File.expand_path('../app_config.yml', __FILE__)))[Rails.env]
APP_CONFIG['site_url']