2010-09-15 4 views
0

Я парень .net, делающий какую-то работу/обучение RoR. У меня есть несколько специфических для среды параметров, которые я хотел бы использовать для экстернализации (информация о доступе s3). Каков способ сделать это? Я понимаю, что это место в config/environment/[environment], но я прошу об этом. Должна ли она быть глобальной постоянной? следует ли использовать инициализатор? как я могу сделать эти данные доступными для класса потребления?Каков рекомендуемый подход для настроек приложения в RoR?

ответ

2

Включение конфигурации среды в файлы окружения считается лучшей практикой. Вы можете определить эти конфиги как константы, и они будут доступны везде в вашем приложении автоматически.

S3Config = { :username => "blah" } 

Доступ к :user ключ по телефону S3Config[:user].

+0

ли содержимое этих файлов окружения по умолчанию импортируется в среду выполнения? мой первый подход состоял в том, чтобы просто определить две константы в/development, но мне нужно было $ при их потреблении (да, я рубин n00b) – kolosy

+0

Ключ: имя пользователя, а не: пользователь. – Mauricio

+1

kolosy: вам не нужна глобальная константа (переменная, начинающаяся с '$'), просто заглавная буква первой буквы (да, она ** имеет ** букву) переменной и которая будет определять ее как константу , Остальные буквы не должны быть капитализированы. –

0

Посмотрите на SimpleConfig Gem. Он позволяет определять переменные среды.

Он также поддерживает приоритеты среды, так что вы можете определить базовые переменные в файле конфигурации application.rb и переопределить их в конфигурационных файлах, специфичных для конкретной среды.

Смежные вопросы