【发布时间】:2012-11-27 01:38:26
【问题描述】:
我正在尝试使用 will_paginate gem 实现 Ajax 调用,我发现本指南 http://ramblinglabs.com/blog/2011/11/rails-3-1-will_paginate-and-ajax 似乎是一个简单的解决方案,虽然它包含我不熟悉的咖啡脚本,所以如果有人有不同的解决方案,请告知..
我的代码如下
我的观点
<div class="container">
<div class="row">
<div id="userRecipes">
<%= render partial: 'userrecipes' %>
</div>
</div><!--/row-->
我的部分(用户食谱)
<% @recipes.each do |r| %>
<div class="span3">
<div class="thumbnail">
<%= image_tag r.avatar.url(:myrecipes) %>
</div>
<h4><%= link_to r.dish_name, r %></h4>
<hr>
<p><%= truncate r.description, :length => 90 %></p>
<p><%= link_to "Edit Recipe", edit_recipe_path(r.id) %></p>
<p><%= link_to "Delete Recipe", recipe_path(r.id), :confirm => "Are you sure?", :method => :delete %></p>
<p><%= link_to "Add to favorites", {:controller => 'favourites', :action => 'create', :recipe_id => r.id}, {:method => :post } %></p>
</div><!--/span3-->
<% end %>
<%= will_paginate @recipes %>
更新了 userrecipes.js.erb 文件
$('#userRecipes').html('<%= escape_javascript(render partial: 'userrecipes') %>');
$.setAjaxPagination();
咖啡脚本
$ ->
$.setAjaxPagination = ->
$('.pagination a').click (event) ->
event.preventDefault()
loading = $ '<div id="loading" style="display: none;"><span><img src="/assets/loading.gif" alt="cargando..."/></span></div>'
$('.other_images').prepend loading
loading.fadeIn()
$.ajax type: 'GET', url: $(@).attr('href'), dataType: 'script', success: (-> loading.fadeOut -> loading.remove())
false
$.setAjaxPagination()
当我单击下一个锚标记以显示下一组结果时,页面保持原样并且不会出现新内容
当使用控制台查看是否有任何错误我可以看到任何错误时,输出是
GET http://localhost:3000/my_recipes?page=2&_=1355055997639
我在这里错过了什么吗?还是我的 userrecipes.js.erb 文件有问题,因为在其他 Ajax 示例中我看到你在渲染部分时使用了 escape_javascript?
编辑
在控制台中检查响应时,它还显示正在加载要加载的新配方,但视图中没有发生任何事情
欢迎指点
谢谢
【问题讨论】:
-
你能用 firebug 等追踪来自浏览器的请求吗...响应中的内容是什么?
-
我的回复显示下一组食谱正在按照我的要求显示,但视图没有显示?
标签: ruby-on-rails ajax ruby-on-rails-3 coffeescript partial-views