Rails, Ruby, how to sort an Array?
@list.sort_by{|e| e[:time_ago]}
it defaults to ASC, however if you wanted DESC you can do:
@list.sort_by{|e| -e[:time_ago]}
Also it seems like you are trying to build the list from @messages
. You can simply do:
@list = @messages.map{|m|
{:id => m.id, :title => m.title, :time_ago => m.replies.first.created_at }
}
In rails 4+
@list.sort_by(&:time_ago)
You could do:
@list.sort {|a, b| a[:time_ago] <=> b[:time_ago]}