Retireving record for will_paginate

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.

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~

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 Ransing 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