2010-03-16 99 views
2

我曾搜索过此网站,但通常有关于执行客户端验证或针对不同框架的问题。Rails和jQuery - 如何在ajax请求后获得服务器端验证错误

我有一个任务列表,其内容可以内联编辑。在提交内联编辑表单后,项目更新全部归功于jQuery,ajax和rails。

但我想处理来自用户的错误输入。 HTML请求重新显示视图和错误显示感谢铁帮助。

但是,如何在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 

回答

2

那么我的更新方法,你可以做

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

其中inline_form里面,你的行内编辑坐在元素的ID。 form部分可以包含error_messages_for声明和您显示的实际字段。

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

+0

啊不错。这非常好。感谢那。 – robodisco 2010-03-16 13:32:19

相关问题