rails 3,Kaminari pagination for an simple Array
Asked Answered
M

1

39

For paginating a common array I got this solution,

@arr_name = Kaminari.paginate_array(@arr_name).page(params[:page]).per(PER_PAGE_RECORDS)

PER_PAGE_RECORDS is a variable with value as per needed for pagination.

Any better Ideas??

Also to have an ajax call for using pagination one can use this,

In your view,

give id to your div tab

div id="paginate"

and inside it

<%= paginate @arr_name, :remote => true %>

And in js response file put,

$('#paginate').html('<%= escape_javascript(paginate(@arr_name, :remote => true).to_s) %>');

So your requests will be AJAX.

Thanks.

Merrel answered 1/7, 2011 at 9:18 Comment(3)
Please format your code using 4-space indentation or backticks. Thank you.Upturned
what exactly is your problem ?Corrianne
@Corrianne He's not sure if this is the correct approach?Exostosis
M
78

This is the only available helper method to paginate an array object using Kaminari. Another alternative is, as suggested solution in kaminari wiki page, add the instance methods to the array object.

If you are trying a common solution based on the ActiveModel return type ( .all returns array and .where returns ARL) then following is an workaround.

unless @arr_name.kind_of?(Array)
  @arr_name = @arr_name.page(params[:page]).per(PER_PAGE_RECORDS)
else
  @arr_name = Kaminari.paginate_array(@arr_name).page(params[:page]).per(PER_PAGE_RECORDS)
end
Melodic answered 12/3, 2012 at 15:21 Comment(1)
Nice solution. Just a little suggestion @Sethupathi. It is a best practice to use 'if else' instead of 'unless else' :) Cheers!Pennyroyal

© 2022 - 2024 — McMap. All rights reserved.