我正在创建一个测验应用程序。这是我的模特。在创建相同模型时创建has_many和belongs_to关系
答案
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字段。由于答案尚未保存,所以没有id放入correct_answer_id表单中。有任何想法吗?
DB明智地在问题中有correct_answer_id意味着我不必遍历答案以获得正确答案 – user1169547 2012-02-02 03:44:31
不,这是不正确的。您可以使用find从数据库中选择正确的问题。这将是一个查询,并将返回一个元素。即使您在问题模型中存储了正确的ID,您仍然需要查询答案数据库来解决实际问题。在Question模型中存储正确答案确实是一个糟糕的设计。模型应该是你的程序的封装元素。不要混合问题和答案。 – Max 2012-02-02 04:39:08