just found a piece of the problem :
all_users.sort_by{|user| [user.send('current_distance'), user.name]}
seems to work , but how can I set the sort order ? DESC on
current_distance et ASC on name ????
thanks
On 12 sep, 18:18, Erwin <[EMAIL PROTECTED]> wrote:
> HI mates
>
> I am trying to sort an array on 2 criterias , one is just in memory
> accessor, other is a record attribute :
>
> I have the following User model :
>
> class User < ActiveRecord::Base
> # name is an attribute in the table
> ....
> attr_accessor :current_distance
> ..
> end
>
> In my controller, I calculate current_distance for each customer, and
> set user.current_distance , but don't save the record...
>
> then get the following array :
> all_users =>
> [#<User id: 1, name: "Alan", created_at: "2008-09-11 14:30:38">,
> #<User id: 2, name: "Bill, created_at: "2008-09-11 14:30:38">,
> #<User id: 3, name: "John", created_at: "2008-09-11 14:30:38">,
> #<User id: 4, name: "Michael", created_at: "2008-09-11 14:30:38">]
>
> that I can sort easily using
> all_users.sort_by {|item| item.send 'current_distance' }
>
> obviously, I cannot use all_users.sort_by {|user|
> user[:current_distance] } ... but I can use all_users.sort_by {|
> user| user[:name] }
>
> my issue is trying to sort_by both criteria 1st on
> current_distance ASC, and 2nd on name DESC
>
> any enlightment ?
>
> thanks for your help
>
> erwin
--~--~---------~--~----~------------~-------~--~----~
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 this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---