2014-09-11 61 views
1

使用軌道4,我需要生成從在發展相對URL環境變量,和絕對酮在生產Rails環境變量相對或絕對路徑

DEV: SOME_PATH = [導軌根]/SOME_PATH

PROD: SOME_PATH = [某些絕對路徑]/some_other_path

我存儲這些變量在一個YML文件,以下我發現there說明書。 什麼是一個很好的方式/最佳做法來存儲和生成這些變量?

例如,在我的陽明我可以這樣寫:

development: 
    DOCETUDE_PATH: some_path 
production: 
    DOCETUDE_PATH: /home/public/some_other_path 

而且在某個地方我的代碼必須生成路徑名的變量。這似乎工作,但看起來hackish:

if (ENV['DOCETUDE_PATH'].start_with?("/")) 
    MY_CST = Pathname.new(ENV['DOCETUDE_PATH'] 
else 
    MY_CST = File.join(Rails.root, ENV['DOCETUDE_PATH']) 
end 

回答

1

如果這些是你的要求,那些是你的要求。

我可能會將其基於Rails環境而不是路徑名稱,以防發胖或包含路徑與環境檢查以確保沒有人指責配置。

我可能會使用Ruby環境init文件而不是環境,所以它都是代碼。

如果我做你的方式我會重構的一些代碼,所以它看起來更像:

path = ENV['DOCETUDE_PATH'] 
MY_CST = relative_path?(path) ? Pathname.new(path) : File.join(Rails.root, path) 

(並創建relative_path?方法,當然,如果它不存在某處)。