2012-06-10 3 views

ответ

2

Предположительно, вы прочитали the rails guide for configuring applications? Кроме того, каждый жемчуг обычно предоставляет файл инициализации/конфигурации, если необходимо, в генераторе пост-установки и документирует его в README.

3

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

конфигурация/my_secrets.yml:

development: 
    password: abcdefgh 
test: 
    password: abcdefgh 

конфигурации/Инициализаторы/load_my_config.rb:

MY_CONFIG = YAML.load_file("#{Rails.root.to_s}/config/my_secrets.yml")[Rails.env] 

Теперь вы можете получить доступ к вашему password в любой среде, обратившись к MY_CONFIG['password']. Производственный пароль может храниться исключительно на сервере (и в другом безопасном месте).

Для нечувствительных данных я бы просто поместил данные непосредственно в инициализатор.

+0

Файл yml является общедоступным, однако, не так ли? – thatdankent

+0

'uninitialized constant HomeController :: MY_CONFIG' – Alexandre

+0

Файл yml размещен на сервере, но он должен быть доступен только для пользователей рельсов. – Nicholas

3

пароли (для приложения) должны рассматриваться с помощью аутентификации/авторизации самоцвета, таких как Завещания, оформление, authLogic и т.д.

переменных, которые вы хотите получить через рубиновый код данного запроса на приложение может храниться в глобальных переменных. Значения фиксированного уровня могут сохраняться в константах. В rails, поскольку контроллеры наследуют от application_controller, вы можете определить константы уровня класса там. Проверьте язык Ruby на точные правила наследования для этих переменных типов переменных.

На самом деле лучше не делать этого вообще или избегать его, когда это возможно, и многие хорошие программисты избегают этого, как чума. Это означает, что ваши кодовые блоки не инкапсулированы - действия теперь зависят от внешних значений, и это увеличивает связь, заставляя много элементов зависящих от одной вещи, которая может измениться за пределами их объема.

+0

Это замечательный комментарий, Майкл. Интересует ваши мысли о сохранении ключей аутентификации в константе, определенной вне кода. Это приемлемый предмет для хранения в другом месте? – thatdankent

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