RoR,Jquery,Ajax形成错误

时间:2009-07-13 19:40:49

标签: jquery ruby-on-rails ajax forms error-handling

好的。我有一个创建表单,人们可以创建业务,然后将其添加到数据库中。一切都很好。如果事情没有正确填写,Rails就会抛出它的错误,如果它们是,那么你将被引导到另一个页面,向你展示你刚刚创建的业务。现在,我必须能够单击创建并让ajax实现业务并将其添加到下表中。事情很有效。 1业务已更新,但未动态添加到表中。 2.更大的问题,就是他们没有填写必填字段,点击创建什么都不做。它不会抛出任何错误。我正在使用jquery通过.js.erb文件调用ajax。这是我的.js.erb文件。

$("#new_business").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
$("#businesses").append("<%= escape_javascript(render(:partial => @businesses)) %>");
$("#new_business")[0].reset();

和我的业务总监

    def create
    @business = Business.new(params[:business])

    respond_to do |format|
      if @business.save
        #blindly make them the owner of the business they created
        if current_user
          current_user.business_id = @business.id
          current_user.save
        end
        flash.now[:notice] = 'Business was successfully created.'
        format.html { redirect_to(business_url(@business)) }
        format.js { render :layout => false }
        format.xml  { render :xml => @business, :status => :created, :location => @business }
      else
        flash.now[:notice] = 'Necessary fields have not been filled out'
        format.html { render :action => "new" }
        format.xml  { render :xml => @business.errors, :status => :unprocessable_entity }
      end
    end
  end

闪存通知=除非您刷新页面,否则未填写的必填字段不会显示。没有出现任何默认的xml错误。因此,如果他们没有填写所有正确的表格,按钮似乎没有反应。如何使用ajax调用ruby抛出的那些错误并将它们放入flash通知中?

1 个答案:

答案 0 :(得分:1)

您可以使用包含错误消息字段的表单模板刷新整个表单。像这样你也会得到缺少的字段突出显示等等。