Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails是否从无效表单中恢复?_Ruby On Rails_Validation_Forms_Recover_Rescue - Fatal编程技术网

Ruby on rails Rails是否从无效表单中恢复?

Ruby on rails Rails是否从无效表单中恢复?,ruby-on-rails,validation,forms,recover,rescue,Ruby On Rails,Validation,Forms,Recover,Rescue,我有一个Rails 2.3应用程序 目前,我的模型中有以下验证: validates_presence_of :jobno, :companyname 我有以下控制器: # POST /kases # POST /kases.xml def create @company = Company.find(params[:kase][:company_id]) @kase = @company.kases.create!(params[:kase]) respond_

我有一个Rails 2.3应用程序

目前,我的模型中有以下验证:

validates_presence_of :jobno, :companyname
我有以下控制器:

# POST /kases
# POST /kases.xml
  def create
    @company = Company.find(params[:kase][:company_id])
    @kase = @company.kases.create!(params[:kase])

    respond_to do |format|
        UserMailer.deliver_makeakase("EMAILADDRESS", "Highrise", @kase) if params[:sendtohighrise]
        UserMailer.deliver_makeakaseteam("EMAILADDRESS", "Highrise", @kase) if params[:notify_team_of_creation]
        @kase.delay.create_freeagent_project(current_user) if params[:send_to_freeagent]

        #flash[:notice] = 'Case was successfully created.'
        flash[:notice] = fading_flash_message("Case was successfully created.", 5)
    end  
        format.html { redirect_to(@kase) }
        format.xml  { render :xml => @kase, :status => :created, :location => @kase }
  end
因此,当您尝试创建不包含jobno或companyname的新记录时,我正确地得到以下错误消息:

ActiveRecord::RecordInvalid in KasesController#create
Validation failed: {{errors}}
我已经读过关于恢复能力的文章,但我不确定如何/在哪里使用它。我已经阅读了一些关于拯救表单内容能力的文档。我正试图使表单保持原位-输入内容-但在表单上显示错误

我读过的一份文件在这里

我不想记录错误,只需通知用户问题所在,以便他们可以重试

这可能吗

谢谢

丹尼

def create
  @company = Company.find(params[:kase][:company_id])
  @kase = @company.kases.new(params[:kase])

  if @kase.save
    UserMailer.deliver_makeakase("EMAILADDRESS", "Highrise", @kase) if params[:sendtohighrise]
    UserMailer.deliver_makeakaseteam("EMAILADDRESS", "Highrise", @kase) if params[:notify_team_of_creation]
    @kase.delay.create_freeagent_project(current_user) if params[:send_to_freeagent]
    redirect_to @kase
  else  
    render :new
  end
end