Rails中的AJAX:在完成模型#update后显示模型#new form

时间:2012-02-06 02:03:47

标签: ruby-on-rails ajax

我在Rails中有一个帐户设置向导,其中显示了公司列表。当通过AJAX更新公司的详细信息时,一切都很完美。但是,在成功更新后,我还想用新客户端表单替换Update Client表单。

似乎正确的做法是使用AJAX来更新表单的包含元素,使用来自公司#new的JS格式响应。这可能来自公司内部#new JS格式的响应吗?

1 个答案:

答案 0 :(得分:2)

是的,在这种情况下使用ajax是一件好事。发布后,公司的详细信息通过ajax成功更新。

如果当前更新成功,您可以在更新操作中呈现json,并将新表单作为json传递。

def update
    @company = Company.find(params[:id])
    respond_to do |format|
    if @company.update_attributes(params[:company])
      format.json { render json: { success: true, html: render_to_string('_form.html.slim', layout: false) } }
      format.html { redirect_to @company, notice: 'Company was successfully updated.' }
    else
      ...

您可以访问js中的json并替换当前的表单元素。

$('#company_form').live 'ajax:success', (event,data) ->
    $('#current_company_form').html(data.html) if(data.success == true)

如果有帮助,请告诉我。