Rails jQuery无页面问题

时间:2011-02-27 01:28:50

标签: javascript jquery ruby-on-rails ruby-on-rails-3

这是交易,

我正在尝试解决无页面(无限滚动)无法渲染的原因。使用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

2 个答案:

答案 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'

希望这有助于!!!干杯!!!