Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.3k views
Welcome To Ask or Share your Answers For Others

1 Answer

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...