2013-03-16 39 views
0

我有一个Rails应用程序可以解答一些问题。这是一个选择权衡的实验,对于每个问题,许多答案都是动态生成的。因此,我需要保留记录,不仅为每个问题选择了哪个答案,还要向每位用户提供哪些选项。Rails - 选择了一个选项的Has_many

所以,我的模型是

class Survey < ActiveRecord::Base 
    belongs_to :user 
    has_many :questions 
end 

class Question < ActiveRecord::Base 
    belongs_to :survey 
    has_many :possible_answers 
end 

class PossibleAnswer < ActiveRecord::Base 
    belongs_to :question 
end 

从这里,什么是它的PossibleAnswer选择用于跟踪的最佳做法是什么?并使用PossibleAnswer模型指示器,然后使用验证逻辑来​​检查是否仅选择了一个?还是应该重新定义我的问题中的关系,以便我have_many RejectedAnswers和have_one AcceptedAnswer?

我知道有多种方法可以做到这一点,但我试图了解哪种选项通常会被认为是最佳做法。

回答

1

我会将accepted_answer_id添加到问题中并让它指向PossibleAnswer。

相关问题