Rails3 - странный вывод плагина will_paginate

У меня есть плагин will_paginate, работающий в приложении, но когда я разбиваю ресурс на страницы, он просто выдает HTML в виде текста, не предоставляет ссылок на следующие страницы и тому подобное.

И когда я вручную ввожу URL-адрес, плагин работает, он просто не превращает <%= will_paginate @products %> в ссылки, такие как следующий 1 2 3 ... последний

это результат

<span class="disabled prev_page">&amp;laquo; Previous</span> <span class="current">1</span> <a href="/products?page=2" rel="next">2</a> <a href="/products?page=2" class="next_page" rel="next">Next &amp;raquo;</a>

контроллер: индекс определения

@products = Product.all.paginate :per_page => 5, :page => params[:page]
@product_categories = ProductCategory.find(:all)
respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @products }
end

конец

Посмотреть

<%= will_paginate @products %> 
<%= will_paginate %> #for some reasons this works too

person thenengah    schedule 09.04.2010    source источник
comment
Это происходит, когда значение для @products равно null ИЛИ пусто. Поэтому убедитесь, что вы имеете в виду правильную переменную.   -  person Harish Shetty    schedule 09.04.2010
comment
возможно, но я использую ту же переменную, с которой зацикливаю продукты, и у цикла нет проблем с доступом к переменной экземпляра @products   -  person thenengah    schedule 09.04.2010


Ответы (4)


source 'http://rubygems.org'

gem 'rails', '3.0.0.beta2'
gem "will_paginate", '3.0.pre' 

если у вас возникнут проблемы, связанные с haml, мы используем эту версию:

gem 'haml', '3.0.2'
person Andreas Klinger    schedule 23.05.2010

will_paginate теперь находится по этому адресу:
gem 'will_paginate', :git => 'git://github.com/mislav/will_paginate.git', :branch => "rails3"

обновите гемфайл

person David Henner    schedule 06.07.2010

Я считаю, что причина в том, что rails3 экранирует html и по какой-то причине will_pagiante экранируется.

чтобы исправить это, вам сначала нужно получить правильный гем, так как плагин не будет работать, поэтому добавьте gem 'agnostic-will_paginate', :require => 'will_paginate', и это делается в новом файле гем, расположенном в папке приложения проекта rails3.

После этого вам нужно остановить рельсы от побега will_paginate с помощью raw, что-то вроде <%=raw will_paginate @products %>, которое является оппозицией <%=h will_paginate @products %>, что в rails3 эквивалентно <%= will_paginate @products %>

person thenengah    schedule 09.04.2010
comment
У меня была аналогичная проблема с ОП здесь. raw, h, html_safe все не помогло. Единственное, что помогло, это использовать версию 3.0.3 will_paginate. - person Graeme Moss; 05.10.2012

РАЗБИВКА НА РАЗБИВКУ ПЕРЕМЕЩЕНА НА GITHUB. Этот репозиторий больше не обновляется. Рекомендуется установить гем вместо плагина Rails:

gem install will_paginate

и попробуй еще раз

person Salil    schedule 09.04.2010
comment
gem 'agnostic-will_paginate', :require =› 'will_paginate' - person thenengah; 09.04.2010