【问题标题】:How can I return error from reject_if if not pass validation如果未通过验证,如何从reject_if 返回错误
【发布时间】:2015-07-21 03:30:45
【问题描述】:

我有三个成员,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 时,只有记录未通过但我想返回错误并重定向以再次填写表单。

【问题讨论】:

  • 如果没有关系,不要使用accepts_nested_attributes_for
  • 我建议您将实际模型添加到问题中。当你使用真正抽象的例子时,很多东西会在翻译中丢失。
  • 好的,我已经改了。

标签: ruby-on-rails validation model


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 2016-09-20
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    相关资源
    最近更新 更多