Rails update_attributes创建重复记录

时间:2016-04-18 07:46:58

标签: ruby-on-rails ruby

我有三个模型 - Question,QuestionPaper和QuestionPaperQuestion。

Class QuestionPaper  
   has_many: questions  
end

Class QuestionPaperQuestion  
   belongs_to: question_paper   
   validates_uniqueness_of :question_id, scope: :question_paper_id 
end

在question_paper_controller中,

def save_questions  
  question_ids_array = params[:question_ids]  
  @question_paper.update_attributes!(question_ids: question_ids_array.uniq)
end  

用户可以在问题文件中添加或删除问题 参数[:question_ids]在添加或删除后将包含所有问题。如果没有question_id的question_paper_question记录,我需要创建一个新记录。并销毁具有question_id的question_paper_question记录,这些记录在参数中不存在。

我尝试使用update_attributes!。它完全符合我的要求,但有时候验证失败 即使我使用uniq获取独特的问题ID,验证失败的原因可能是什么? 还有其他任何优雅的方式来实现同样的事情吗?

0 个答案:

没有答案