Использование : Ruby on Rails (3.0.3)
Я создаю веб-сайт, на котором можно выполнять различные вычисления, связанные со здоровьем и диетой.
Каждый расчет содержит различные входные данные:
Расчет 1 рост, вес, размер талии
Расчет 2 weight, hip_measurement
Расчет 3 hip_measurement, lifestyle_type (string), age, calory_intake
... и т. д.
У меня есть (по предложению друга, который знает RoR, создал модель «Расчет» (которая выступает в качестве шаблона) и другую модель «Расчетный лист», которая будет использоваться в качестве модели экземпляра и т. д.
Модель: расчет (template) содержит такие данные, как: - TypeOfCalculation («здоровье», «образ жизни» и т. д.) - SearchTags - isSpecial (логическое значение для выделения определенных специальных вычислений)
Количество объектов вычисления равно количеству типов вычисленийна веб-сайте (например, 3, о котором я упоминал ранее)
Модель: CalculationSheet будет содержать только такие данные, как: - Результат (например, BMI => 22)
CalculationSheet будет создан, когдаРасчитатьДействие выполняется на сайте с помощью Create.Мне не нужно сохранять эти расчеты (предпочитаю не делать этого на самом деле).
Наиболее важной причиной использования модели CalculationSheet является возможность проверки ввода ... и вотпроблема.
проблема: Как проверить входные данные модели, которая не содержит каждый входной атрибут в качестве атрибута.Я не могу создать атрибут для каждого типа ввода (буквально 100), такого как рост, вес, стиль жизни, талия, возраст и т. Д. ...
Это мой план на данный момент:
class CalculationSheet < ActiveRecord::Base
belongs_to :calculation
# BMI
validates :height, :numericality => true, :if => :calculation_is_bmi?
validates :weight, :numericality => true, :if => :calculation_is_bmi?
def calculation_is_bmi?
# do something
end
end
, который (очевидно) не работает.Он пытается проверить высоту, которой не существует.
Что я хотел бы сделать, это "проверить параметры [: высота],: число ... и т. Д.", Но, похоже, это тоже не работает ...
Как я могу решить эту проблему?