Will_Paginate Doesnt Show First Page

Hello everyone, I am having an issue with the will_paginate gem, i have recently added AJAX and JS to refresh the div with paginate without refreshing the page. I followed online examples and successfully got it working, however the "previous" button and the first page are not shown as links, and can not be clicked. All other pages are in working order, and refreshes fine except the first.

Controller:

def index @tickets = Ticket.where('archived = ?', "False").where('closed = ?', "False").order(sort_column + " " + sort_direction).paginate(:page => params[:page] || 1, :per_page => 12)

respond_to do |format|          format.html # index.html.erb          format.json { render json: @tickets }         format.js       end

end

View:

<div id="list">   <%= render :partial => 'customerList' %> </div>

<%= will_paginate @tickets, :previous_label => "&larr; Previous", :next_label => "Next &rarr;" %>

<script> $(document).ready(function() {     $('.paginate a').attr('data-remote', 'true'); });</script>

Index.js.erb:

$('#list').html('<%=escape_javascript render :partial => "customerList" %>'); $('.paginate a').attr('data-remote', 'true');

If anyone could shine some light on why this issue is occuring, I'd really appreciate it. Thanks!

Could you provide rendered HTML for the Previous button? My idea would be it is disabled somehow and you got to alter that part of HTML too with your code in index.js.erb; i.e. it is rendered as non-link for the first (default) rendering of the pagination, and that element has no idea you’re already “at page 2”. Better yet provide what the HTML of Prev looks like when you are at page number 1, and page number 2 (without Ajax functionality). That should give you and me insight in what has to change for that Prev link to become active.

Page Source - With Ajax Functioning

<div class='paginate'>         <div class="pagination"><span class="previous_page disabled">&#8592; Previous</span> <em class="current">1</em> <a rel="next" href="/tickets?page=2">2</a> <a href="/tickets?page=3">3</a> <a href="/tickets?page=4">4</a> <a href="/tickets?page=5">5</a> <a class="next_page" rel="next" href="/tickets?page=2">Next &#8594;</a></div> </div>

It does appear that the previous button is disabled on page load, and the first page is not a link.

After changing the page number, :

Page Source - Page 2 - With Ajax

<div class='paginate'>         <div class="pagination"><span class="previous_page disabled">&#8592; Previous</span> <em class="current">1</em> <a rel="next" href="/tickets?page=2">2</a> <a href="/tickets?page=3">3</a> <a href="/tickets?page=4">4</a> <a href="/tickets?page=5">5</a> <a class="next_page" rel="next" href="/tickets?page=2">Next &#8594;</a></div> </div>

The first page link still shows the "current" class, the "Next" button stays linked to page #2, and the previous is disabled.

(Without Ajax, the will_paginate was fully functional, including the "Previous and Next" buttons)

I think its better to add

<%= will_paginate @tickets, :previous_label => “← Previous”,

:next_label => “Next →” %>

in the partial file (customerList). I hope it may be useful

I'm not 100% why, but that worked perfectly. Thanks so much!