Где лучшее место для хранения значений конфигурации (ключи, пароли или просто значения конфигурации) в приложении Ruby on Rails? Я много искал и не нашел ответа, который я считал правильным.Rails - где хранить значения конфигурации?
ответ
Предположительно, вы прочитали the rails guide for configuring applications? Кроме того, каждый жемчуг обычно предоставляет файл инициализации/конфигурации, если необходимо, в генераторе пост-установки и документирует его в README.
Если речь идет о паролях, я бы рекомендовал вам хранить данные во внешнем файле, чтобы можно было не передавать конфиденциальные данные в ваш репозиторий. Затем вы можете загрузить данные в память при чтении файла в инициализаторе, например:
конфигурация/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']
. Производственный пароль может храниться исключительно на сервере (и в другом безопасном месте).
Для нечувствительных данных я бы просто поместил данные непосредственно в инициализатор.
пароли (для приложения) должны рассматриваться с помощью аутентификации/авторизации самоцвета, таких как Завещания, оформление, authLogic и т.д.
переменных, которые вы хотите получить через рубиновый код данного запроса на приложение может храниться в глобальных переменных. Значения фиксированного уровня могут сохраняться в константах. В rails, поскольку контроллеры наследуют от application_controller, вы можете определить константы уровня класса там. Проверьте язык Ruby на точные правила наследования для этих переменных типов переменных.
На самом деле лучше не делать этого вообще или избегать его, когда это возможно, и многие хорошие программисты избегают этого, как чума. Это означает, что ваши кодовые блоки не инкапсулированы - действия теперь зависят от внешних значений, и это увеличивает связь, заставляя много элементов зависящих от одной вещи, которая может измениться за пределами их объема.
Это замечательный комментарий, Майкл. Интересует ваши мысли о сохранении ключей аутентификации в константе, определенной вне кода. Это приемлемый предмет для хранения в другом месте? – thatdankent
- 1. Где хранить пользовательские файлы конфигурации
- 2. Rails - где хранить коллекции
- 3. Где хранить данные конфигурации для всего веб-приложения в Rails?
- 4. Где хранить значения конфигурации в приложении Azure Service?
- 5. В angularjs, где я должен хранить значения конфигурации ui
- 6. Где хранить версию приложения Rails
- 7. Rails: где поставить переменные конфигурации
- 8. Laravel - где хранить данные конфигурации сайта
- 9. spring, где хранить файлы конфигурации xml
- 10. Где \ Как хранить данные распределенной конфигурации
- 11. Как и где хранить настройки конфигурации предприятия?
- 12. Где хранить объекты конфигурации для директив?
- 13. Где я могу хранить статические/постоянные значения в приложении rails?
- 14. Rails: где хранить возможные значения атрибута в ActiveResource
- 15. Rails 4 - где временно хранить файлы?
- 16. Где хранить угловые шаблоны в Rails?
- 17. Где хранить глобальные соединения с Rails?
- 18. Где хранить статическую информацию в приложении rails?
- 19. Где хранить файлы ftp в rails app
- 20. Где хранить файлы XML в Rails
- 21. Где хранить национальности в приложении Rails?
- 22. Где хранить предыдущие значения в ReactJS
- 23. Где я должен хранить значения анимации?
- 24. Android где хранить файлы
- 25. Хранить историю конфигурации TFS
- 26. Где хранить информацию о конфигурации в большой распределенной системе предприятия
- 27. где хранить/сохранять данные конфигурации для приложения Java Enterprise
- 28. ASP.NET MVC Многостраничный сайт - где хранить данные конфигурации сайта
- 29. Где хранить свойства конкретной конфигурации приложения в приложении Azure Functions
- 30. Где хранить данные конфигурации приложения, которые необходимо перезаписать?
Файл yml является общедоступным, однако, не так ли? – thatdankent
'uninitialized constant HomeController :: MY_CONFIG' – Alexandre
Файл yml размещен на сервере, но он должен быть доступен только для пользователей рельсов. – Nicholas