2015-07-06 5 views
0

Мне нужен совет по архитектуре. Я больше в java, но пытаюсь ускориться с Ruby-on-rails. В приложении, которое я создаю, мне нужно удобное место для хранения некоторых значений словаря, которые позже будут использоваться в разных местах приложения. Обычно это пары ключевых значений - например, список значений, которые будут использоваться в списке выбора.Рельсы - наилучшая практика хранения словарей (пары ключевых значений)

Основная цель - сохранить эту логику в одном месте приложения.

Я рассматриваю следующие варианты:

  1. хранения значений в базе данных - я вроде не хотят этого, поскольку значения не будут меняться очень часто.

  2. Поместите все значения в один класс. В JAVA у меня есть некоторые статические свойства в одном классе с этими значениями (например, вызов Utils.getStates() будет возвращать список состояний). Как это сделать рубиновым способом?

  3. Имейте файл .yml со значениями - считайте значения. Как это сделать? Наверное, мне приходится разбирать файл в инициализаторе, но есть ли какой-нибудь учебник, как это сделать?

Точный пример? Предположим, что у модели есть поле под названием «Тип». Тип может быть: ['Type A', 'Type B', 'Type C'...]. И, конечно, для каждого типа я хочу иметь ключ и ценность.

Буду признателен за некоторые рекомендации по решению этой проблемы в ваших приложениях.

Спасибо, Maciek

ответ

2

Как часто изменение списка? Допустимо ли участие разработчиков в каждом изменении значения (обновление кода, повторное развертывание приложения)? Если ответ «Нет»: сохраните значения в базе данных.

Является ли список значений повторно используемыми? Тогда может быть хорошим выбором файл gem или yaml с инициализатором.

Это маленький список и не меняется часто? Тогда вы можете рассмотреть константу.

0

Я думаю, что в Rails любые данные, которые будут меняться во время выполнения и должны быть сохранены, обычно будут храниться в базе данных. Я думаю, что это будет «путь рельсов». Вы можете сохранить данные в файл yaml или json, но это не будет соответствовать нормальному потоку шаблона MVC, который так часто встречается в рельсах.

Смежные вопросы