Как определить пользовательские переменные конфигурации в рельсах - PullRequest
330 голосов
/ 20 сентября 2009

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

Во-вторых, я планировал иметь поддержку S3 для загрузок в моем приложении, если я хотел добавить файл yaml с доступом к s3, секретным ключом, как мне инициализировать его в моем приложении Rails и как получить доступ к значениям, которые Я определил в этом файле конфигурации.

Ответы [ 14 ]

4 голосов
/ 07 апреля 2011

Я создал простой плагин для настроек YAML: Yettings

Он работает аналогично коду в ответе khelll, но вам нужно только добавить этот файл конфигурации YAML:

app/config/yetting.yml

Плагин динамически создает класс, который позволяет вам получить доступ к настройкам YML в качестве методов класса в вашем приложении, например:

Yetting.your_setting

Кроме того, если вы хотите использовать несколько файлов настроек с уникальными именами, вы можете поместить их в подкаталог в app / config следующим образом:

app/config/yettings/first.yml
app/config/yettings/second.yml

Тогда вы можете получить доступ к таким значениям, как это:

FirstYetting.your_setting
SecondYetting.your_setting

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

2 голосов
/ 20 сентября 2009

Мне нравится использовать rails-settings для глобальных значений конфигурации, которые необходимо изменить через веб-интерфейс.

0 голосов
/ 26 апреля 2018

То, что мы начинаем делать на работе, это ActiveSupport Ordered Hash

Что позволяет вам точно определить свою конфигурацию в файлах среды, например,

config.service = ActiveSupport::OrderedOptions.new
config.service.api_key = ENV['SERVICE_API_KEY']
config.service.shared_secret = ENV['SERVICE_SHARED_SECRET']
0 голосов
/ 24 апреля 2014

Я бы предложил хороший подход к настройке вашего приложения вообще. Есть три основных правила:

  • изменить конфигурацию, а не код;
  • использовать конфигурации поверх условий;
  • написать код, который что-то значит.

Чтобы получить более подробный обзор, перейдите по этой ссылке: Конфигурация Rails надлежащим образом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...