Converta a saída will_paginate em marcação Bootstrap

Problema

  • Você está usando will_paginate gem e Twitter bootstrap
  • Você quer que a marcação seja gerada no formato de bootstrap do Twitter

Opções

  • Você pode escrever seu próprio auxiliar de renderização personalizado em ruby ​​para renderizar a marcação como você quiser
  • Você pode reformatar o lado do cliente de marcação com js após renderizar

Aqui está a solução do lado do cliente

$(document).ready(function () {
$
('.pagination .previous_page').text('«');
$
('.pagination .next_page').text('»');

$
('.pagination').each(function () {
var $bar = $(this);
$bar
.find('a, .current, span').wrapAll('<ul>');
$bar
.find('a, .current, span').wrap('<li>');

$bar
.find('em').each(function () {
$
(this).parent().addClass('disabled');
$
(this).replaceWith('<a href="#">' + $(this).text() + '</a>');
});
});
});

isto levará o seguinte irá paginar html

<div class="pagination">
<span class="previous_page disabled">&#8592; Previous</span>
<em class="current">1</em>
<a rel="next" href="/admin/accounts?page=2">2</a>
</div>

E convertê-lo para o qual o CSS do Bootstrap foi escrito

<div class="pagination">
<ul>
<li class="disabled"><a href="#">«</a></li>
<li class="active"><a href="#">1</a></li>
<li><a href="#">»</a></li>
</ul>
</div>