IMO, экземпляр CardList
инициализируется и сохраняется в сессии, когда пользователь начинает викторину (вы также можете дать пользователю возможность перезапустить, что будет другим методом на существующем/другом контроллере). Таким образом, список CardList будет храниться в сессии пользователя, а вы, при каждом тестировании, будете выдавать ему очередную Card
.
Таким образом, ваш метод "each" будет разделять между веб-просмотрами, если хотите.
Итак, ваше представление отображает карточку
пользователю, который отвечает и вызывает метод на контроллере, где его перемещают к следующей карточке
и снова показывают представление. Использование переменной flash
- отличный способ дать пользователю обратную связь о предыдущем коммите.
Как вы уже сделали, ваша карточка обычно представляет собой модель ActiveRecord. Вы сделали свой CardList тоже моделью ActiveRecord, что является отличным способом.
Обратите внимание, что вы, возможно, захотите использовать разные термины для quiz
и quiz
(например, QuizSet?), чтобы все было немного понятнее.