Rails 3 Application / User Settings — лучшая практика?

В настоящее время у меня есть потребность в разрешении как глобальных параметров, настраиваемых администратором, так и настраиваемых пользователем параметров в приложении Rails 3.

Есть ли какие-то жемчужины или передовые методы, которые подходят для этой ситуации?

Я нашел несколько драгоценных камней и сообщений в блогах, но все они датируются 2006-08 гг. И больше не поддерживаются. Любые указатели будут оценены, спасибо.

Примечание. Я видел этот вопрос с сериализованным хеш-ответом, но в моем конкретном случае требуется возможность запрашивать базу данных для пользователей на основе их настроек — я не думаю, что сериализованный хеш-код будет хорошо работать в этой ситуации.

В дополнение к этому, если вы просто ищете общесистемную конфигурацию, есть новый вариант, который выглядит хорошо — github .com / paulca / configurable_engine   —  person Kevin Ansfield    schedule 10.02.2011

спасибо за это, выглядит как классная жемчужина.   —  person Kevin Ansfield    schedule 11.10.2011

Возможный дубликат Ruby on Rails — сохранение конфигурации приложения   —  person Kevin Ansfield    schedule 28.10.2016

См. также:  Ошибка установки Rails: для «атомарного» нативного драгоценного камня требуются установленные инструменты сборки
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 4
  1. Kevin Ansfield

    Как всегда сразу после обращения за помощью, мои поиски приносят плоды. Нашел вилку rails-settings Георга Ледерманна, которая, похоже, сделает именно то, что мне нужно.

    И этот является вилкой rails-settings на 110 Гц с кешированием :) person Kevin Ansfield; 12.06.2012

  2. Kevin Ansfield

    Не уверен, что буду искать библиотеку для этой функции.

    Для глобальных настроек я бы создал файл config / application.yml, прочитал его в environment.rb и установил для него глобальный APP_CONFIG. Затем я бы переопределил эти настройки для каждого пользователя, добавив текстовый столбец в пользовательскую таблицу с хешем настроек в json-кодировке. Добавьте в модель пользователя метод, который захватывает APP_CONFIG и выполняет глубокое слияние с декодированными пользовательскими настройками.

    Другой вариант — создать таблицу настроек со столбцом user_id и столбцами для каждого параметра. Одна строка с нулевым user_id будет представлять глобальные настройки. Если для текущего пользователя существует строка, любые значения, отличные от nil, переопределят строку глобальных настроек.

    Спасибо за ответ. Оба вышеперечисленных подходы определенно действительны. В конце концов, я выбрал вилку Rails 3 для гема rails-settings, поскольку он также легко позволял применять настройки к нескольким типам моделей (у меня есть глобальные настройки, а также настройки для администраторов, пользователей и индивидуальных прослушиваний пользователей среди прочего. ). person Kevin Ansfield; 04.12.2010

    У меня было много проблем с драгоценным камнем в принятом ответе в рельсах 3.2. Это решение я реализовал за несколько минут. Я выполнил сериализацию YAML для своего столбца базы данных и установил инициализатор, подобный упомянутому здесь stackoverflow.com/questions/592554/ person Kevin Ansfield; 21.01.2013

  3. Kevin Ansfield

    Также можно посмотреть https://github.com/railsjedi/rails_config. Среди множества функций:

    • Глобальные настройки.yml
    • Файлы настроек среды (settings / development.yml, settings / production.yml и т. Д.)
    • Файлы локальных настроек (settings.local.yml, settings / development.local.yml и т. Д.)
    • Встроенная поддержка ERB
    • Поддержка Rails 3 / Padrino / Sinatra
  4. Kevin Ansfield

    Для rails 4, если вы используете postgresql, вы можете использовать HStore, который похож на сериализуемый атрибут, но с ним можно выполнять SQL-запросы.

    Для rails 3 вы можете использовать гем activerecord-postgres-hstore.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: