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

时间:2015-01-13 11:09:31

标签: ruby-on-rails exception-handling model

此异常无法处理此错误。

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

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

This is from update action

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

2 个答案:

答案 0 :(得分:0)

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

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

谢谢。

答案 1 :(得分:-1)

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

假设您在表单上显示错误,则只需渲染编辑模板。