【问题标题】:RoR, Jquery, Ajax form errorsRoR、Jquery、Ajax 表单错误
【发布时间】:2010-11-10 10:24:50
【问题描述】:

好的。我有一个创建表单,人们可以在其中创建业务,然后将其添加到数据库中。一切正常。如果没有正确填写,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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 好吧。重点是我使用 Ajax 将其动态提交到下表,并且没有页面刷新。
    • 我的意思是使用 ajax 刷新。您将表单放入容器中并更新此容器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多