Создание пользовательских моделей и таблиц SQL в Ruby on Rails 4
Рассматривая сценарий системы управления запасами. Инвентарь имеет много типов предметов, каждый со своей таблицей и столбцами. Одной, двух или двенадцати таблиц недостаточно, чтобы описать множество ТИПОВ предметов, поскольку они чрезвычайно различны. например, некоторые атрибуты семейства предметов, таких как BIKES, не имеют одинаковых атрибутов CARS. Разработчику утомительно учитывать тысячи ТИПОВ предметов и включать их в каждую модель вручную.
Есть ли способ для пользователей самим создавать модели? создавая собственные таблицы SQL и т. д. Есть ли другой подход к этой проблеме? (Возможно, с использованием технологий семантической паутины)
Исходя из Spring Framework, я довольно новичок в разработке RoR.
Заранее спасибо.
1 ответ
Я не эксперт, но вы могли бы сделать это с помощью стандартных, заранее определенных моделей.
Item_Type
Item_Attribute
Item
Item_Type будет иметь переменную имени (не уникальную) и, возможно, любые другие общие атрибуты, которые вы захотите. Тогда бы has_many Item_Attributes
отношения, тогда как Item_Attribute
belongs_to Item_Type
,
Так что я бы сделал вид, который позволяет пользователю добавлять новые Item_Type
с, а затем определить Item_Attribute
s для этих типов предметов.
Тогда вы могли бы иметь фактическое Item
модель, каждый экземпляр которой является существование Item_Type
в инвентаре. Item
принадлежит Item_Type
, а также Item_Type
has_many
Items
, а также Item
не может иметь ноль Item_Type
,
Таким образом, пользователь создает новый Item_Type
с именем "BIKE", затем добавляет несколько Item_Attribute
с ним, например, "гора" и "красный". Затем пользователь может создать новый Item
что имеет отношение к "ВЕЛОСИПЕДУ" Item_Type
,
Если бы они хотели добавить синий горный велосипед вместо красного, им нужно было бы снова пройти процесс, добавив еще один Item_Type
"BIKE", за исключением добавления "Blue" в качестве атрибута для нового экземпляра Item_Type
"s Item_Attribute
s.