Forum: Ruby on Rails Retireving record for will_paginate

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Tushar G. (Guest)
on 2009-06-09 13:46
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.
Sandip R. (Guest)
on 2009-06-09 13:52
(Received via mailing list)
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
Tushar G. (Guest)
on 2009-06-09 14:12
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
Frederick C. (Guest)
on 2009-06-09 14:48
(Received via mailing list)
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
Tushar G. (Guest)
on 2009-06-09 15:21
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
This topic is locked and can not be replied to.