【问题标题】:Rails and jQuery - how do you get server-side validation errors to your view after an ajax requestRails 和 jQuery - 如何在 ajax 请求后将服务器端验证错误发送到视图
【发布时间】:2010-03-16 10:59:01
【问题描述】:

我搜索过这个网站,但问题通常是关于进行客户端验证或不同框架的。

我有一个可以内联编辑其项目的任务列表。提交内联编辑表单后,项目会通过 jQuery、ajax 和 rails 进行更新。

但我想处理来自用户的错误输入。 HTML 请求重新显示视图并显示错误,这要归功于 rails 帮助器。

但是如何在 ajax 调用之后插入该信息?

这是我在控制器中的更新方法

def update
    @task = Task.find(params[:id])

    respond_to do |format|
      if @task.update_attributes(params[:task])
        flash[:notice] = 'Task was successfully updated.'
        format.html { redirect_to(@task) }
        format.xml  { head :ok }
        format.js
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @task.errors, :status => :unprocessable_entity }
        #format.js ...hmmm... either go to js.erb file or do stuff inline
      end
    end
  end

【问题讨论】:

    标签: jquery ruby-on-rails


    【解决方案1】:

    你可以的

    format.js { render :update { |page| page.replace_html "inline_form", :partial => "form" }
    

    其中inline_form 是您的内联编辑器所在元素的ID。 form 部分可以包含 error_messages_for 语句和您正在显示的实际字段。

    这样,如果验证失败,您的编辑器中的元素将使用相同的编辑器进行更新,但会显示验证错误。

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 2014-02-22
      • 2012-11-08
      • 1970-01-01
      • 2018-04-05
      • 2022-01-20
      • 2012-01-03
      • 2012-11-11
      • 1970-01-01
      相关资源
      最近更新 更多