2010-09-15 157 views
0

我是一個.net人做一些工作/學習RoR。我有一些特定於環境的設置想要外部化(s3訪問信息)。有什麼辦法做到這一點?我意識到它的位置在config/environment/[environment]中,但我超越了這個範圍。它應該是一個全球常數?我應該使用初始化程序嗎?我如何幹淨地將這些數據提供給消費類?RoR中應用程序設置的推薦方法是什麼?

回答

2

將環境配置放在環境文件中被認爲是最佳實踐。您可以將這些配置定義爲常量,並且它們將自動在您的應用程序的任何地方都可用。

S3Config = { :username => "blah" } 

訪問:user鍵調用S3Config[:user]

+0

默認情況下,這些環境文件的內容是否會導入到運行時?我的第一種方法是在/開發中只定義兩個常量,但在消費時需要一個$(是的,我是一個紅寶石n00b) – kolosy 2010-09-15 17:15:57

+0

關鍵是:用戶名,而不是:用戶。 – Mauricio 2010-09-15 19:52:58

+1

kolosy:你不需要一個全局常量(一個以'$'開頭的變量)只是將變量的第一個字母(是的,它**有**作爲字母)大寫,並將其定義爲常量。其餘的信件不需要大寫。 – 2010-09-16 20:08:54

0

看看SimpleConfig Gem。它允許你定義環境變量。

它還支持環境優先級,以便您可以在application.rb配置文件中定義基本變量,並在特定於環境的配置文件中覆蓋它們。

相關問題