Создание отношений has_many и own_to для одной и той же модели при создании - PullRequest
0 голосов
/ 02 февраля 2012

Я создаю приложение для викторины.Вот мои модели.

Ответы

class Answer < ActiveRecord::Base                                                                                       
belongs_to :question
end

Вопросы

class Question < ActiveRecord::Base
has_many :answers
belongs_to :correct_answer, :class_name=>"Answer" 
accepts_nested_attributes_for :answers,  :reject_if => lambda { |a| a[:content].blank?    }, :allow_destroy => true
end

Я пытаюсь создать форму вложенных атрибутов, используя материал railscast 196 и 197.Таким образом могут быть бесконечные добавления и удаления при их создании / редактировании.

Я могу создавать вопросы с ответами, это нормально.Проблема заключается в создании поля correct_answer.Поскольку ответы еще не сохранены, в форме correct_answer_id нет идентификатора.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Начните с конца в шахте.

Я сделал это сам - см. Какие таблицы и отношения в базе данных mysql будут поддерживать опрос вопросов и ответов с условными вопросами?

Приложения для викторин имеют долгую историю, начиная с очень простых, затем возникают неожиданные случаи и складки. Этот дизайн обращается к многим из них из опыта.

Если ничего другого, часть текста с (моим) ответом может помочь вам разобраться.

0 голосов
/ 02 февраля 2012

Я не вижу причины, по которой поле correct_answer находится в классе Question.Почему бы не добавить логический столбец в таблицу ответов?Затем вы можете сделать что-то вроде Question.answers.find (correct: true), чтобы получить коллекцию со всеми правильными ответами на вопрос.Тогда у вас также могут быть вопросы с более чем одним правильным ответом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...