我有三个成员,answer_set,回答哪个model_a与model_c没有关系(它没有直接关系。关系看起来像member->answer_set->answer
),所以在model_a我添加这个代码用于保存关联记录的属性
accepts_nested_attributes_for :answer_set, reject_if: :validation_method
并添加reject_if方法以检查答案的验证。来自answer_set属性
def validation_method(answer_sets_attribute)
question = Question.find(answer_sets_attribute[:question_id])
answer = answer_sets_attributes[:answers_attributes]
return true if answer[:answer_text].blank? && answer[:answer_number].blank?
end
但是当我从validation_method返回true
时,它只是除了没有通过的记录,但我想返回错误并重定向再次填充表单。
答案 0 :(得分:0)
最后,我找到了解决我问题的解决方案。我使用validates_presence_of :answer_set
并且它不会通过验证
当accepts_nested_attributes_for
被拒绝时,它会从验证中发送错误并返回到表单。