Validation Rails 3.2-验证-重定向回错误

Validation Rails 3.2-验证-重定向回错误,validation,error-handling,ruby-on-rails-3.2,Validation,Error Handling,Ruby On Rails 3.2,我需要有关错误验证/重定向的帮助 如果我使用format.html{redirect\u to:back,flash:{error:“哦,出了问题。请再试一次。”}错误消息有效,但它不保存表单数据,因此用户需要重新输入,并且不知道哪些字段不正确 format.xml{render:xml=>@award.errors,:status=>:unprocessable_entity}行重定向到back,但不显示任何错误 我想看看哪些字段是不正确的,它们的验证消息是完整的。请帮助语法。提前感谢 res

我需要有关错误验证/重定向的帮助

如果我使用
format.html{redirect\u to:back,flash:{error:“哦,出了问题。请再试一次。”}
错误消息有效,但它不保存表单数据,因此用户需要重新输入,并且不知道哪些字段不正确

format.xml{render:xml=>@award.errors,:status=>:unprocessable_entity}
行重定向到back,但不显示任何错误

我想看看哪些字段是不正确的,它们的验证消息是完整的。请帮助语法。提前感谢

respond_to do |format|
  if @award.save
    format.html { redirect_to(new_award_path, :notice => 'Thank you for your nomination!') }
    format.xml  { render :xml => @award, :status => :created, :location => @award }
  else
    format.html {redirect_to :back}
    #format.html {redirect_to :back, flash: {error: "Oops, something went wrong. Please try again."}}
    format.xml {render :xml => @award.errors, :status => :unprocessable_entity}
  end
end 
更新以包含更多详细信息:

我正在为此创建方法使用两种不同的表单。每个表单都有一个隐藏字段来设置布尔值,然后我在控制器中根据该隐藏条件执行操作。如果有错误,我需要重定向到正确的表单,保留其值,并显示相应的错误字段。类似于以下内容:

respond_to do |format|
      if @award.save
        format.html { redirect_to(new_award_path, :notice => 'Thank you for your nomination!') }
        format.xml  { render :xml => @award, :status => :created, :location => @award }
      else
        if boolean_field == true
            format.html { render action: "true_form" }
            format.xml {render :xml => @award.errors, :status => :unprocessable_entity}
        else
            format.html { render action: "false_form" }
            format.xml {render :xml => @award.errors, :status => :unprocessable_entity}
        end
      end
end

当我以这种方式尝试时,错误会起作用,但它总是返回到true形式,即使我是从false形式开始的。因此,这就像忽略了布尔值字段条件……有意义吗?

技巧不是在出现错误时重定向,而是简单地再次渲染视图

respond_to do |format|
  if @award.save
    format.html { redirect_to(new_award_path, notice: 'Thank you for your nomination!') }
    format.xml { render xml: @award, status: :created, location: @award }
  else
    format.html { render action: 'new' }
    format.xml { render json: @award.errors, status: :unprocessable_entity }
  end
end

谢谢你的回复-问题是,我忘了在我的原始帖子中包括的是,我正在使用两种不同的表单来创建此方法。因此,我需要返回到所使用的表单,这就是为什么我使用
重定向到:back
我将编辑我的原始帖子。哦,见鬼,它现在确实起作用了。WTF?我发誓,我尝试了25次好几次了。只要和机修工谈谈,问题就解决了!谢谢!