Ruby on Rails Wednesday, July 25, 2012

thanks , I uses I was not clear enough...
if I do: where(:id => item_ids).order('id DESC') then the output
will not be what I want
in this case,
items.id IN [ 5, 2, 1, 10, ...] will give => [1, 2, 5, 10, ..]

this is exactly what I don't want .. I want to keep: where(:id =>
item_ids) with order the same as the array




On 25 juil, 16:11, Gintautas Šimkus <dihita...@gmail.com> wrote:
> 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 <yves_duf...@mac.com>
>
>
>
>
>
>
>
>
>
> > 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 <clan...@googlemail.com> wrote:
> > > On 25 July 2012 13:35, Erwin <yves_duf...@mac.com> 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 rubyonrails-talk@googlegroups.com
> > .
> > > > To unsubscribe from this group, send email to
> > rubyonrails-talk+unsubscribe@googlegroups.com.
> > > > 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 rubyonrails-talk@googlegroups.com.
> > To unsubscribe from this group, send email to
> > rubyonrails-talk+unsubscribe@googlegroups.com.
> > For more options, visithttps://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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment