2012-02-02 4 views
0

퀴즈 응용 프로그램을 만들고 있습니다. 여기 내 모델입니다.만들기에서 동일한 모델의 has_many 및 belongs_to 관계 만들기

내가 railscast 196 및 197 재료를 사용하여 형성 중첩 된 속성을 가지고 노력하고

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 

답변. 그렇게하면 무한 추가 기능이있을 수 있고 작성/편집 중 제거 될 수 있습니다.

괜찮은 답변으로 질문을 만들 수 있습니다. 문제는 correct_answer 필드를 만드는 것입니다. 답변이 아직 저장되지 않았기 때문에 correct_answer_id 양식에 입력 할 ID가 없습니다. 어떤 아이디어?

답변

0

Question 클래스에 correct_answer 필드가 표시되지 않습니다. 왜 부울 열을 answers 테이블에 추가하지 않습니까? 그런 다음 Question.answers.find (correct : true)와 같은 작업을 수행하여 질문에 대한 모든 정답을 가진 모음을 가져올 수 있습니다. 그렇다면 하나 이상의 정답이있는 질문을 가질 수도 있습니다.

+0

질문에 올바른 _ 답변 _ ID가있는 것이 현명한 이유는 올바른 답변을 얻기 위해 반복 할 필요가 없음을 의미합니다. – user1169547

+0

아니요, 사실이 아닙니다. find를 사용하여 데이터베이스에서 정확한 질문을 선택하십시오. 이것은 하나의 쿼리가 될 것이고 하나의 요소를 반환 할 것입니다. Question 모델에 올바른 ID를 저장하더라도 실제 질문을 풀기 위해 응답 데이터베이스를 쿼리해야합니다. 질문 모델에 정답을 저장하는 것은 실제로 좋지 않습니다. 모델은 프로그램의 캡슐화 된 요소로 간주됩니다. 질문과 답변을 섞지 마십시오. – Max

0

광산에서 끝으로 시작하십시오.

나는이에게 자신을 수행 한 - 경우 에지 후, What mysql database tables and relationships would support a Q&A survey with conditional questions?

퀴즈 응용 프로그램은 매우 간단 밖으로 시작의 오랜 역사를 가지고보고 주름 돌발. 이 디자인은 많은 사람들을 경험으로부터 해결합니다.

그 밖의 것이 없다면 (내) 대답이있는 텍스트 중 일부는 생각을 돕는 데 도움이 될 수 있습니다.

관련 문제