我正在创建一个测验应用程序。这是我的模特。
答案
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表单中输入ID。有什么想法吗?
答案 0 :(得分:0)
我没有看到correct_answer字段在Question类中的原因。为什么不在答案表中添加布尔列?然后你可以做一些类似于Question.answers.find(correct:true)的东西来获得一个包含问题所有正确答案的集合。那么你也可以提出多个正确答案的问题。
答案 1 :(得分:0)
从我的结尾开始。
我自己也这样做了 - 请参阅What mysql database tables and relationships would support a Q&A survey with conditional questions?
测验应用程序有很长的历史,开始非常简单,然后边缘情况和皱纹突然出现。这个设计从经验中解决了许多问题。
如果不出意外,一些带有(我的)答案的文字可以帮助你思考问题。