如果模型验证失败,则无法正确处理异常

Exception is not correctly handling if the model validation fails

这个异常没有处理这个错误。

没有问题更新模板,问题更新后它将重定向到索引页面,但是当模型验证在保存时出现错误时显示以下消息。

def update
begin
 programme..
 ......
 Question.save
 flash[:sussess] = "Question created"
 redirect_to :action=>'index'
rescue ActionView::MissingTemplate
  flash[:error] = "Duplicate question,exception due to the model validation"
  redirect_to :action=>'index'
end

以下场景异常处理的正确方法是什么

def update
  if @question.update(question_params)
    redirect_to action: 'index'
  else
    render 'edit'
  end
end

假设您的表单上显示错误,那么只需呈现编辑模板。

在这种情况下,我们需要按以下方式处理(ActiveRecord::RecordInvalid)。 我通过将此救援添加到代码中解决了它。

begin
    .....
    .....
rescue ActiveRecord::RecordInvalid => invalid
  flash[:error] = t('flash_notice.qs_duplicate')
  return redirect_to (:back)
end

谢谢。