Retireving record for will_paginate


#1

Hi,
I am using “will_paginate” for pagination. For that I have written
following code.

@selected_photos=BookPhoto.find(:all, :conditions=>[“id=?”,
params[:id]])
@book_photos=@selected_photos.paginate :per_page => 3, :page =>
params[:page]

It is working fine.
I have problem with this that every time it is retrieving all records
satisfying the where condition.
I don’t want like that. It should fetch only three records from the
database.
How should I do that?

Any help will be appreciated.

Thanks,
Tushar.


#2

Hi Tushar,

not very much sure but may be following line can solve your problem.

BookPhoto.find(:all, :conditions=>[“id=?”,params[:id]]).paginate
:per_page
=> 3, :page => params[:page]

Sandip R~

On Tue, Jun 9, 2009 at 3:16 PM, Tushar G. <
removed_email_address@domain.invalid> wrote:

It is working fine.

Posted via http://www.ruby-forum.com/.


Ruby on Rails Developer
http://sandip.sosblog.com
http://funonrails.wordpress.com
www.joshsoftware.com


#3

Hi Sandip,
I think it will not solve my problem. It will again find all record and
do paginate onto it. I don’t think so it will add any limit on the
retrieval of records depending on the page.
Any ways thanks for your quick reply.
Thanks,
Tushar

Sandip R. wrote:

Hi Tushar,

not very much sure but may be following line can solve your problem.

BookPhoto.find(:all, :conditions=>[“id=?”,params[:id]]).paginate
:per_page
=> 3, :page => params[:page]

Sandip R~

On Tue, Jun 9, 2009 at 3:16 PM, Tushar G. <
removed_email_address@domain.invalid> wrote:

It is working fine.

Posted via http://www.ruby-forum.com/.


Ruby on Rails Developer
http://sandip.sosblog.com
http://funonrails.wordpress.com
www.joshsoftware.com


#4

On Jun 9, 11:12 am, Tushar G. removed_email_address@domain.invalid
wrote:

Hi Sandip,
I think it will not solve my problem. It will again find all record and
do paginate onto it. I don’t think so it will add any limit on the
retrieval of records depending on the page.
Any ways thanks for your quick reply.
Thanks,
Tushar

It’s because you are doing a find and then paginating the resulting
array. You should be doing something like

BookPhoto.paginate(:conditions => …, :page => params[:page], …)

Fred


#5

Thanks Frederick
Your solution is what I am looking for.
Thanks,
Tushar

Frederick C. wrote:

On Jun 9, 11:12�am, Tushar G. removed_email_address@domain.invalid
wrote:

Hi Sandip,
I think it will not solve my problem. It will again find all record and
do paginate onto it. I don’t think so it will add any limit on the
retrieval of records depending on the page.
Any ways thanks for your quick reply.
Thanks,
Tushar

It’s because you are doing a find and then paginating the resulting
array. You should be doing something like

BookPhoto.paginate(:conditions => …, :page => params[:page], …)

Fred