Ruby on rails rails 3,脚手架应用程序,如何将自己的错误消息添加到更新方法?

Ruby on rails rails 3,脚手架应用程序,如何将自己的错误消息添加到更新方法?,ruby-on-rails,validation,Ruby On Rails,Validation,在搭建的Rails 3中,当“update”方法无法保存时,逻辑已经存在,可以重定向回编辑页面 我们修改了scaffolded方法来执行一些定制的验证逻辑(在更新之后,但在呈现结果视图之前) respond_to do |format| if @thingy.update_attributes(params[:thingy]) if @thingy.found_warning_101 WHAT GOES "HERE" TO REDIRECT TO EDIT

在搭建的Rails 3中,当“update”方法无法保存时,逻辑已经存在,可以重定向回编辑页面

我们修改了scaffolded方法来执行一些定制的验证逻辑(在更新之后,但在呈现结果视图之前)

respond_to do |format|
  if @thingy.update_attributes(params[:thingy])
      if @thingy.found_warning_101

           WHAT GOES "HERE" TO REDIRECT TO EDIT PAGE
           AND HAVE THE DEFAULT SCAFFOLDING ERROR HANDLING SHOW "WARNING 101"?
           THIS DOES NOT WORK, GIVES MISSING VIEW ERROR, DOESNT FIND EDIT VIEW:

           format.html { render :action => "edit", :notice => "WARNING 101" }
           format.xml  { render :xml => @things.errors, :status => :unprocessable_entity }
           return

      end

    format.html { redirect_to(@thingy, :notice => "thingy was successfully updated.") }
    format.xml  { head :ok }
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @beep.errors, :status => :unprocessable_entity }
  end
我们尝试(如上)简单地复制scaffolding为.update_属性失败(后跟return)的情况创建的相同代码,但我们得到了一个缺少视图的错误:

Missing template thingys/update with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml, :haml, :voice], :formats=>[:html], :locale=>[:en, :en]} in view paths 

我真的不明白你为什么要这么做,无论如何,下面是实现它的方法:

@thingy.errors[:base] << "whatever text you want"

@thingy.errors[:base]是的,我们正在处理一种愚蠢的情况。感谢您提供有关添加错误消息的信息。我不明白为什么render:action=>“编辑”抛出该错误…与update_属性有关的东西已经被调用了,我想?我猜我们需要一个redirect语句来再次重定向回update方法…不知道该如何做。是的,我们正在使用该方法+视图进行编辑,从而触发“error 101”…在这里显示的代码中,有一个“end”缺失g和“return”是删除的,但其余的似乎没有问题。