我在Rails中有一个帐户设置向导,其中显示了公司列表。当通过AJAX更新公司的详细信息时,一切都很完美。但是,在成功更新后,我还想用新客户端表单替换Update Client表单。
似乎正确的做法是使用AJAX来更新表单的包含元素,使用来自公司#new的JS格式响应。这可能来自公司内部#new JS格式的响应吗?
答案 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)
如果有帮助,请告诉我。