Каков хороший способ реализовать эту структуру данных в ROR activerecord? - PullRequest
0 голосов
/ 29 октября 2011

Я не хочу изобретать велосипед здесь, поэтому буду очень признателен за совет!

У меня такое ощущение, что есть "стандартная" модель для сущности-> атрибута-> системы ценностей?

Атрибуты предварительно определены для каждой сущности, поэтому, когда создается экземпляр «Dave's Party», пользователю необходимо задать конкретные вопросы в зависимости от того, какие «услуги» ему требуются. Например. если ему требуется освещение, его нужно спросить, нужно ли указывать бюджет и цвет, а также значения, которые он дает, нужно сохранить в правильном формате или выбрать из набора предопределенных параметров.

Спасибо за любую помощь и извинения за то, что я перечислил данные ниже, надеюсь, как это имеет смысл!


services = [stage,lighting,sound,tent]

lighting.info_types = [budget,colour]

lighting.size.type = options lighting.size.options = [small,medium,large]

lighting.info_types.colour.type = options lighting.info_types['colour'].options = [red,green,blue]

lighting.info_types.budget.type = currency


tent.info_types = [size,type,capacity]

....

stage.info_types = [size,powered,raised,stage_type]

....

«для конкретного мероприятия« вечеринка Дейва »требуется небольшая сцена с бюджетом красного освещения в 300 фунтов стерлингов»

@event = Event.create :name => "Dave's Party"  
@event.services = [stage,lighting,sound]

Какие типы информации имеют освещение и каков правильный формат ответов?

@event.services.lighting.size = large  
@event.services.lighting.colour = red  
@event.services.lighting.budget = 300.00

....

Какие услуги нужны Dave's Party? Каковы info_types и значения для каждой из услуг?

...

1 Ответ

1 голос
/ 29 октября 2011

Я бы использовал набор таблиц и моделей для данных по свету, звуку, цвету, емкости, типу бюджета и т. Д. И использовал бы ActiveRecord, а затем вы можете использовать стандартные и знакомые запросы для управления данными. Если у вас есть значения, которые нужно изначально установить для приложения, используйте файл seed.rb. Вы можете поднять их за несколько секунд для создания прототипа.

Другие могут порекомендовать sti / polymorphism, но если вы уже не уверены в этих областях, я бы порекомендовал KISS и просто отдельные таблицы. Таблицы / модели так просто сделать в рельсах!

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