Мне нужно мнение о том, как структурировать мои модели для рельсов 4 приложения Я рисовал. Архитектура не должна быть слишком сложной, но я часами побывал в кругах, поэтому я выброшу ее в сообщество.Структурирование моделей рельсов для разных видов данных
У меня есть модель под названием «checkin», которая имеет поля «has_many». Каждое поле может иметь множество значений, которые могут быть одним из нескольких типов данных, которые могут увеличиваться с течением времени, но для стартеров будут только float
и string
. Как только поле добавляется к проверке, его тип данных не может измениться.
Подумайте о потере веса, когда некоторые люди захотят войти в систему только weight
. Другие могут захотеть зарегистрировать weight
, %bodyfat
. Другие могли бы хотеть дополнительные поля для других метрик или текстовое поле для того, что настроение вы в
Так что у меня до сих пор:.
class Checkin < ActiveRecord::Base
has_many :fields
class Field < ActiveRecord::Base
belongs_to :checkin
А потом я собирался сделать
class DataFloat < ActiveRecord::Base
belongs_to :field
class DataString < ActiveRecord::Base
belongs_to :string
т.д.
схема проста только с ссылками на данный момент. DataFloat имеет поплавок и DataString имеет строку (как и следовало ожидать)
Тогда я буду использовать что-то вроде ActiveRecord::Base.descendants
а (согласно THIS), чтобы создать поле выбора, так что вы можете выбрать то, что поле, когда вы добавьте его в чек.
Мой вопрос для всех тех экспертов MVC, есть ли это лучший способ сделать это. Будет ли я лучше иметь центральный объект «Данные», который расширяется DataFloat и DataString? Есть ли третий, лучший способ, о котором я не думал?