It will not be sorted. You just pass an array basically to that named
scope. And you will get results that satisfy the array so to speak, but it
can come in any order. Just add .order('id DESC')  (or ASC) clause
explicitly.

2012/7/25 Erwin <[email protected]>

> Thanks Colin for your answer
>
> let me draw the big picture :
> in my iatme controller ,before the display ( scope and pagination) , I
> searched for geolocalized data of item ( with distance from the
> search), and I get a sorted array of Item Ids, (already sorted on the
> distance :  item_ids = [ 5, 2, 1, 10, ...] )
>
>
> then I display the items using Kaminari pagination  ( Kaminary doesn't
> paginate an array )
>
> @items = Item.geo_filtered_with(geo_ids).page params[:page]
>
> and my model scope is :
>
>   scope :geo_filtered_with, lambda { |item_ids|
>     where(:id => item_ids)
>   }
>
> so I wonder if the result of the scope will keep the same order as the
> item_ids
> which means :
> items.id IN [ 5, 2, 1, 10, ...]  will always get items records  5, 2,
> 1, 10 .... in this order
>
> that's why I did not specified a sort order with the scope, is it
> clear ?
>
>
>
> On 25 juil, 14:38, Colin Law <[email protected]> wrote:
> > On 25 July 2012 13:35, Erwin <[email protected]> wrote:
> >
> > >  I am using this scope , in which geo_ids is a sorted array of
> > > Ids ...
> >
> > >  scope :geo_filtered_with, lambda { |geo_ids|
> > >     where(:id => geo_ids)
> > >   }
> >
> > > is the resulting output always sorted according to this order ? or
> > > should I modify it ?
> >
> > Since you have not specified any sort specification the order is not
> > defined.  If you want a particular order you must specify it.
> >
> > Colin
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > > thanks for your feedback
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups "Ruby on Rails: Talk" group.
> > > To post to this group, send email to [email protected]
> .
> > > To unsubscribe from this group, send email to
> [email protected].
> > > For more options, visithttps://groups.google.com/groups/opt_out.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>


-- 
Pagarbiai,
Gintautas

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to