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

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

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

是的,在这种情况下使用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) 

如果这有帮助,请告诉我。