2013-04-01 93 views
0

當我嘗試啓動環境「MAINSTREET」這個功能我軌服務器在我的配置/ site_config.rb文件無法獲取軌服務器開始

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 

,我有與定義的設置/配置一個mainstreet.rb文件。我對ruby很陌生,所以我不確定這裏發生了什麼,我從來沒有遇到過這樣的問題。另外,我正在使用Windows。

下面是完整的跟蹤:

+0

如何你是否啓動服務器? – iltempo

+0

首先,我設置RAILS_ENV = mainstreet然後執行rails s -e mainstreet – xxyyxx

回答

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值在函數

+0

不幸的是,仍然得到相同的結果。我的團隊中有兩個人,一個使用OSX,另一個使用Linux,但沒有遇到這個問題。也許值得補充的是,我將rubyracer設置爲不安裝在Windows上,你認爲沒有那個gem會有所作爲嗎? – xxyyxx

+0

@xxyyxx查看我的更新回答 –

+0

這樣做的竅門,謝謝。我早些時候嘗試過,但當時一定是錯過了其他的東西,但它沒有奏效。 – xxyyxx