Параметры настройки приложения направляющих?

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

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

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

10
задан Alex 6 February 2012 в 22:20
поделиться

3 ответа

Для общей конфигурации приложения, которую не нужно хранить в таблице базы данных, мне нравится создавать файл 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 для получения полной информации.

15
ответ дан 3 December 2019 в 16:29
поделиться

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

4
ответ дан 3 December 2019 в 16:29
поделиться

Есть неплохой плагин / гем Settingslogic .

  # 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
6
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: