Модель Rails: декларативно выражающая связь между атрибутами для представления, вычисления и хранения - PullRequest
0 голосов
/ 14 марта 2011

Представьте себе ситуацию:

В моей модели рельсов я использую IceCube :: Schedule для представления шаблона повторяющихся событий календаря (например, «Каждый второй понедельник месяца»). Итак, у меня есть 3 вида атрибутов в моей модели:

  • для расчета: расписание
  • для хранения: столбец базы данных, в котором хранится schedule.to_yaml: schedule_yaml
  • для представления: набор атрибутов, которые используются для ввода / вывода параметров расписания: interval_unit, interval_amount, дни недели и т. Д.

В зависимости от сценария, из одной категории атрибутов вычисляются другие:

  • Ввод процесса: представление атрибутов -> вычисления -> хранилище
  • Обработка неверного ввода: представление -> проверка
  • Подготовка формы ввода: хранение -> вычисления -> представление
  • Вычислительная система (следующая дата в последовательности): хранение -> вычисление -> хранение

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

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

1 Ответ

0 голосов
/ 16 марта 2012

Знаете ли вы о https://github.com/ablegray/schedule-attributes?

Он поддерживает презентацию для моделей на основе IceCube.

...