这是交易,
我正在尝试解决无页面(无限滚动)无法渲染的原因。使用this jQuery Plugin
我的产品索引页面由will_paginate分页:
def index
@products = Product.find(:all, :order => "position DESC").paginate(:per_page => 3, :page => params[:page])
if request.xhr?
render :partial => 'shared/products', :object => @products
end
end
我的索引页面正在调用产品部分
<%= render "shared/products", :object => @products %>
反过来又将集合传递给单一的产品部分
<%= render 'shared/product', :collection => @products %>
如果启用了javascript,则在其上调用无页面(否则将会抓住步骤。
<%= pageless(@products.total_pages, products_path) %>
-----------
def pageless(total_pages, url=nil, container=nil)
opts = {
:totalPages => total_pages,
:url => url,
:loaderMsg => 'Loading more results'
}
container && opts[:container] ||= container
javascript_tag("$('#results').pageless(#{opts.to_json});")
end
最后这里是奇异产品部分的代码
<% @products.each do |product| %>
<li id="product_<%= product.id %>">
<%= link_to product_image(product), product %>
</li>
<% end %>
现在当我加载页面时,没有js错误,我可以看到页面在我的服务器日志中加载,但是没有任何东西在渲染。一切似乎都完美无缺,但却无法呈现。任何帮助将不胜感激。
-Scott
答案 0 :(得分:0)
产品未附加到html。原来是html中的class / id问题。对于任何试图调试类似内容的人,请参阅Jonathan Tran对该问题的评论。
答案 1 :(得分:0)
我改变了一些东西以使其适用于rails3:
<强> index.html.erb 强>
<%= render :partial => 'blah/fooPartial' , :locals => { :foo => @foo} %>
<%= will_paginate(@foo) %>
<%= pageless(@foo.total_pages, @path ) %>
我的FooController:
def index
@foo = Foo.paginate(:page => params[:page], :per_page => 10).
order("created_at DESC")
respond_to do |format|
format.js
format.html # index.html.erb
end
end
我的index.js.erb
$('.row').last().after("<%= escape_javascript( render :partial => 'blah/fooPartial' , :locals => { :foo => @foo}).html_safe %>");
同样根据ahuang的建议将jquery.pageless.js中最后的ajax数据类型从'html'更改为'script'
希望这有助于!!!干杯!!!