我有三个模型 - 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,验证失败的原因可能是什么? 还有其他任何优雅的方式来实现同样的事情吗?