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)
如果这有帮助,请告诉我。
- Rails *已完成406不可接受“在生产中……在分段中工作
- 带有ajax的Rails checkbox_tag
- 通过Ajax加载模板 – 错误
- 是否可以在rails 3.0中使用js.erb partial?
- 模板因Ajax请求而丢失错误 – Rails 3.1
- 哈希标志后获取请求部分
- Rails 4 / ajax – NoMethodError – nil的未定义方法`id’:NilClass – 将变量传递给js模态
- 在Ruby on Rails中旋转图像,类似于AJAX
- 使用带远程的ajax的Ruby表单:true给出了ActionController :: InvalidAuthenticityToken错误。 经典提交没有