Если я правильно понял вашу проблему:
1) вы хотите форму заполнения характеристик товара, когда форма соотвествует категории товара
2) вы хотите форму демонстрации товара в виде соотвествущем категории
тогда:
product - category_id #/categories_ids/habtm как угодно
- has_many specifications
- has_many categories
categories
structure#
hash: {
title: 'вес', measure: 'кг', ....
title: 'CPU', mesure: 'false' #вроде вы будете писать характеристику? просто строкой
title: 'люк', behavior: radio_button, values: %w(есть нет)
# ипт, можно любым образом организовать
Тоесть структуру данных категории товара можно(я бы) хранить в самой категории.
С таким видом категории вы будете знать, как строить форму и как показывать з товар.
specification- product_id
- title #вес
- measure #кг
- value # 100
- behavior: integer #/string/radio/checkox etc как угодно
specification- roduct_id
- title: люк
- measure
- value: true
- behavior: radio/checkbox итп