12 Sep '12, 10pm

Реализация EAV в ActiveRecord с помощью HydraAttribute

Хочу поделиться с сообществом новой версии своего gem'а, hydra_attribute 0.4.0 Он позволяет создавать/удалять атрибуты для модели во время выполнения запроса используя EAV паттерн. Начиная с версии 0.4 добавлена ​​поддержка Attribute Set, c помощью которых можно назначить уникальные атрибуты для каждой записи. Небольшой пример. # создаем атрибуты title = Product.hydra_attributes.create(name: 'title', backend_type: 'string') color = Product.hydra_attributes.create(name: 'color', backend_type: 'string') # создаем набор атрибутов "Default" set1 = Product.hydra_sets.create(name: 'Default') set1.hydra_attributes = [title] # создаем набор атрибутов "General" set2 = Product.hydra_sets.create(name: 'General') set2.hydra_attributes = [color] Product.create # объект имеет два атрибута: title и color Product.create(hydra_set_id: set1.id) # только title Product.create(hydra_set_id: se...

Full article: http://rubyflow.ru/items/1333

Tweets