#ruby-on-rails-3 #data-modeling
#ruby-on-rails-3 #моделирование данных
Вопрос:
Я новичок в rails и могу придумать несколько способов решения этой проблемы, но я бы хотел сделать это способом «rails». Моя проблема в том, что у меня есть model — exam — which :has_many questions. Я хотел бы написать функцию в модели экзамена, которая будет вычислять оценку за экзамен (и сохранять ее в модели экзамена). Для этого мне нужно прочитать данные из объектов вопроса, которые принадлежат экзамену.
Я был бы очень признателен за любые советы или ссылки на документацию.
Комментарии:
1. Недостаточно информации. Что такое оценка? Как вы хотите это посчитать?
Ответ №1:
Поскольку вы ничего не написали о своей структуре данных, давайте представим, что каждый ваш вопрос имеет логическое correct
поле_got. И в вашем экзамене есть целочисленное total_score
поле. Итак, после проверки следует подсчитать все вопросы с правильным ответом:
class Exam < ActiveRecord::Base
has_many :questions
before_save :set_score
def set_score
total_score = questions.where(:correct => true).count
end
end
Комментарии:
1. Спасибо fl00r. Это именно то, что я искал. Модель данных, о которой вы догадались, в значительной степени соответствует тому, что я делаю. Мне нравится идея сохранения результата с использованием метода before_save. Еще раз спасибо.