2012-10-26 2 views
1

온라인 테스트 앱을 구축 중입니다. 내 응용 프로그램에서 하나의 질문은 참/거짓 질문, 단일 선택 (단 하나의 대답을 수락), 다중 선택 (많은 대답을 수락) 수 있습니다. [질문 모델은 그것이 T/F, 단일 또는 다중 선택을 확인하기 위해 question_type_id있을 것이다Ruby on Rails - 답변을 정의하는 방법은 모델에서 true/false입니다. 답변

class Question < ActiveRecord::Base 
    has_many :answers 
end 

class Answer < ActiveRecord::Base 
    belongs_to :question 
end 

: 나는 모델을 만들 수 있습니다.

Answer 모델에는 content 입력 된 텍스트라는 열이 있으며 어떤 대답이 받아 들여지는지 알기 위해 correct이라는 부울 열이 있습니다. 단일 및 다중 선택 질문, 나는 대답은 텍스트가 content 열에 저장할 괜찮을 것이라고 생각하지만, 진실/거짓 질문과 함께, 나는 단지 대답을 저장하는 것이 좋은 생각입니까, 'False'와 같은 'content 열 대답을 True로 설정하면 correct 열에서 허용됩니까? True/False 질문을 다루는 또 다른 더 좋은 방법을 모르겠지만 아무도 도와 줄 수 없습니까?

답변

1

문자열로 부울 값을 저장하는 것이 원하는 작업을 수행하는 가장 합리적인 방법 인 것 같습니다. 저장시 값을 정규화하여 답변을 가져올 때 true 및 false가 항상 동일하게 보이도록하는 것이 좋습니다. 내가 당신을 도울 수 전에 응용 프로그램의 이러한 종류의 일을했기 때문에

+0

을 할 수 '구원의 가치를 정상화'하는 것이 무엇인지 분명히 해 주시겠습니까? – Thanh

+0

예를 들어 사용자 A는 "예"를 입력하고 사용자 B는 "T"를 입력하지만 사용자가 확인한 값은 항상 "TRUE"문자열입니다. 양식을 제출하면 앱이 동일한 것을 의미하는 모든 값을 "TRUE"로 변환하여 모든 T/F 응답을 동일하게 만들 수 있습니다. – adamdunson

+0

좋아요, 지금은 이해해 주셔서 감사합니다. – Thanh

0

.... 당신이 당신의 데이터베이스에 질문의 종류를 구별해야 모든

먼저 ... 우리가 다음 그들에게 ID를 부여한다고 가정 우리는, 당신은 옵션으로 명명 다른 모델을 가지고 여러 수정 MCQ

을위한 단일 올바른 MCQ 1은이 작업을 수행 한 후에 T/F 질문에 대한

0 필요가있다

질문은 많은 옵션을 가지고 있으며, 질문, 우리는 4 열을 가정해야 옵션 옵션 모델에서

을 통해 하나의 답을 가지고 (옵션 A는, B, C, D는) 그것은 네 개의 선택 질문입니다 ...

+0

예, 질문 유형 모델은 세 가지 종류가 있습니다. 하지만 귀하의 제안과 함께, 내가 4 개 이상의 선택이 있다면, 그래서 옵션 모델에서 더 많은 열을 만들어야 만합니까? 그리고 내가 말했듯이, 다중 선택 질문은 하나 뿐인 답을 더 많이 가질 것입니다 : ( – Thanh

+1

질문과 답변 사이의 연관성을 has_many : answers : through : options로 바꿀 수 있습니다. 그러면 has_many가 의도 한대로 작동 할 것입니다. 하나 이상의 연관 객체를 가지고 있습니다 ... :) –

+0

has_many : answers throught : options를 정의한 경우 Option 모델에는'option_id' 열이 있어야하지만 4 열을 정의하면 옵션이 4 열이 아니라 4 응답 열을 가짐을 의미합니다 대답 ID, 그래서 당신은 질문에 대한 올바른 option_id를 설정할 수 있습니까? – Thanh