我的索引页上的 form_tag 中有一个文本字段,应该使用 ajax 创建一个新的“图库”。不幸的是,我的部分(循环遍历所有画廊)在没有页面刷新的情况下不会更新。
如果我提交两次表单,它会呈现提要,直到倒数第二个。
我看到了几个SO帖子,但在这种情况下它似乎没有给我任何答案:
rails-3-ajax-update-partial-doesnt-work-without-page-refresh
请查看我的代码:
Controller
controllers/admin/gallery_controller.rb
def create
@galleries = Gallery.all
@gallery = Gallery.create(:name => params[:name])
respond_to do |format|
if @gallery.save
format.html { redirect_to admin_galleries_path }
format.js
else
flash[:notice] = "Gallery failed to save."
format.html { redirect_to admin_galleries_path }
end
end
end
观看次数
创建.js.erb
# alert("ajax works"); rendered the alert box correctly
$("#galleries").html("<%= escape_javascript(render(@galleries)) %>");
管理/画廊/index.html.erb
<%= render "form" %>
<ul id="galleries">
<%= render @galleries %>
</ul>
管理/画廊/_form.html.erb
<%= form_tag(admin_galleries_path, :method => :post, :remote => true) do %>
<%= text_field_tag(:name) %>
<%= submit_tag("Create") %>
<% end %>
管理/画廊/_gallery.html.erb
<li><%= gallery.name %></li>
日志
Rendered admin/galleries/_gallery.html.erb (0.6ms)
Rendered admin/galleries/create.js.erb (1.4ms)
Completed 200 OK in 18ms (Views: 7.9ms | ActiveRecord: 3.6ms)
非常感谢您的帮助!
最佳答案
我认为你需要交换这两行:
@galleries = Gallery.all
@gallery = Gallery.create(:name => params[:name])
否则,@gallery
将不会包含新创建的Gallery
。
关于jquery - Ajax 创建操作 : partial doesn't update without a page refresh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7520717/