无法启动rails服务器

时间:2013-04-01 23:10:25

标签: ruby-on-rails ruby

当我尝试在我的config / site_config.rb文件中的“mainstreet”环境中启动我的rails服务器时

def self.settings(env)
    answer = YAML::load_file('config/siteconfig.yml')[env]
    raise "No settings for environment #{env}" if answer.nil?
    answer
end

返回“没有环境mainstreet的设置”在siteconfig.yml中我有:

mainstreet:
environment: mainstreet
S3_DOC_BUCKET: 
PPTX_GEN_SERVICE:
PDF_GEN_SERVICE: 
OBJ_THUMB_SERVICE: 
WINDOWS_CLIENT_URL: 
KM_KEY:
HOST_NAME: http://localhost:3000

我在/ config中有一个mainstreet.rb文件,其中定义了设置。我是红宝石的新手,所以我不确定这里发生了什么,我从未遇到过这样的问题。另外,我正在使用Windows。

以下是完整的跟踪:

1 个答案:

答案 0 :(得分:1)

听起来当前目录不是您认为的......您需要指定配置文件的完整路径:

def self.settings(env)
    path = File.join(Rails.root, "config", "siteconfig.yml")
    answer = YAML::load_file(path)[env]
    raise "No settings for environment #{env}" if answer.nil?
    answer
end

编辑: 如果您的配置文件正确无误,那么您的配置文件格式错误。它应该缩进:

mainstreet:
    environment: mainstreet
    S3_DOC_BUCKET: 
    PPTX_GEN_SERVICE:
    PDF_GEN_SERVICE: 
    OBJ_THUMB_SERVICE: 
    WINDOWS_CLIENT_URL: 
    KM_KEY:
    HOST_NAME: http://localhost:3000

在rails3控制台中,文件正确解析:

irb(main):039:0> y = YAML.load_file("c.yml")["mainstreet"]
=> {"environment"=>"mainstreet", "S3_DOC_BUCKET"=>nil, "PPTX_GEN_SERVICE"=>nil, "PDF_GEN_SERVICE"=>nil, "OBJ_THUMB_SERVICE"=>nil, "WINDOWS_CLIENT_URL"=>nil, "KM_KEY"=>nil, "HOST_NAME"=>"http://localhost:3000"}

这假设您将“mainstreet”作为函数中env的值传递