Rails jQuery безстраничная проблема - PullRequest
1 голос
/ 27 февраля 2011

Вот сделка,

Я пытаюсь решить, почему бесстраничный (бесконечный свиток) не рендерится.Используя этот плагин jQuery

У меня есть страница индекса товаров с нумерацией страниц по 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 (в противном случае будет will_paginate.

<%= 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 голосов
/ 25 февраля 2012

я изменил несколько вещей, чтобы заставить его работать на 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 %>");

Также изменил тип данных ajax в самом конце с 'html' на 'script' в jquery.pageless.js, как предложено ahuang

Надеюсь, это поможет !!! Ура !!!

0 голосов
/ 27 февраля 2011

Продукты не добавляются в html. Оказалось, что проблема класса / ID в HTML. Для тех, кто пытается отладить нечто подобное, см. Комментарий Джонатана Трана по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...