如果没有通过验证,如何从reject_if返回错误

时间:2015-07-21 03:30:46

标签: ruby-on-rails validation model

我有三个成员,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时,它只是除了没有通过的记录,但我想返回错误并重定向再次填充表单。

1 个答案:

答案 0 :(得分:0)

最后,我找到了解决我问题的解决方案。我使用validates_presence_of :answer_set并且它不会通过验证 当accepts_nested_attributes_for被拒绝时,它会从验证中发送错误并返回到表单。