【发布时间】:2013-02-08 19:49:30
【问题描述】:
以下内容在 div 中呈现“2”,就像提交表单时一样。
完整品牌/create.js.erb 版本 1:
$("#brand_ajax").html("1")
$("#brand_ajax").html("0")
$("#brand_ajax").html("2")
部分品牌/show_brands.html.erb 我要刷新的 div
<% for brand in @brands%>
ID: <%= h brand.id %>
<% end %>
部分汽车/show.html.erb ajax 调用
<%= form_for([@car, @car.brands.build], **remote: true**) do |f| %>
<%= f.fields_for :brandsdo |a| %>
<%= a.text_field :name, placeholder: "New Manufacturer" %>
<% end %>
<%= f.submit "+", class: "btn inline" %>
<% end %>
**/*The div I want to refresh*/**
<div id="brand_ajax">
<%= render 'brands/show_brands' %>
</div>
品牌控制器
respond_to do |format|
if @brand.save
format.html { redirect_to @car }
format.js
else
flash[:notice] = "Error!"
format.html { redirect_to @car }
end
end
提交新品牌表单后,以下内容不会呈现“2” - 根本不会刷新。只显示旧版本 'show_brands'。
完整品牌/create.js.erb(举例说明)
$("#brand_ajax").html("1")
$("#brand_ajax").html("<%= escape_javascript render 'show_brands' %>")
$("#brand_ajax").html("2")
有什么想法为什么会发生这样的事情?
【问题讨论】:
-
您是否遇到任何错误?正在渲染什么?
-
没有错误。只是没有最新品牌的品牌列表。刷新手册页后会显示最新品牌。
-
这就是全部代码吗?
-
添加了更多代码以更好地说明
-
您能再粘贴一些代码吗?提交表格是什么意思??是在打ajax调用吗??你能发布你完整的javascript代码吗?
标签: ruby-on-rails ajax ruby-on-rails-3