Настройки приложения Rails? - PullRequest
10 голосов
/ 25 мая 2010

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

Мне было интересно, что является нормой для создания этих настроек. Скажем, например, я бы хотел, чтобы одним из параметров было изменение названия приложения или изменение цвета заголовка.

Что я ищу, так это чтобы кто-то объяснил основной процесс / метод - не обязательно конкретный код - хотя это было бы здорово!

Ответы [ 3 ]

14 голосов
/ 25 мая 2010

Для общей конфигурации приложения, которую не нужно хранить в таблице базы данных, я хотел бы создать файл config.yml в каталоге config . Для вашего примера это может выглядеть так:

defaults: &defaults
  app_title: My Awesome App
  header_colour: #fff

development:
  <<: *defaults

test:
  <<: *defaults
  app_title: My Awesome App (TEST ENV)

production:
  <<: *defaults

Этот файл конфигурации загружается из пользовательского инициализатора в config / initializers :

Rails 2.x:

APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]

Rails 3.x:

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

Затем вы можете получить значение, используя:

title = APP_CONFIG['app_title']

См. этот Railscast для получения полной информации.

6 голосов
/ 26 мая 2010

Есть довольно хороший плагин / гем Настройки логики .

  # app/config/application.yml
  defaults: &defaults
    cool:
      saweet: nested settings
    neat_setting: 24
    awesome_setting: <%= "Did you know 5 + 5 = #{5 + 5}?" %>

  development:
    <<: *defaults
    neat_setting: 800

  test:
    <<: *defaults

  production:
    <<: *defaults

Вы можете использовать эти настройки где угодно, например, в модели:

  class Post < ActiveRecord::Base
    self.per_page = Settings.pagination.posts_per_page
  end
4 голосов
/ 25 мая 2010

Вот что я сделал, и, похоже, большинство людей тоже придерживаются этого подхода: http://kpumuk.info/ruby-on-rails/flexible-application-configuration-in-ruby-on-rails/

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