У меня есть небольшой пример Rails-приложения, называемого билетами, который рассматривает и редактирует вымышленные билеты, проданные различным клиентам. В ticket_controller.rb внутри def index у меня есть эта стандартная строка, созданная с помощью лесов:
@tickets = Ticket.find(:all)
Чтобы отсортировать билеты по названию, я нашел два возможных подхода. Вы можете сделать это следующим образом:
@tickets = Ticket.find(:all, :order => 'name')
... или следующим образом:
@tickets = Ticket.find(:all).sort!{|t1,t2|t1.name <=> t2.name}
(Совет. Документация Ruby объясняет, что sort! будет изменять массив, который он сортирует, а не только sort, который возвращает отсортированный массив, но оставляет исходный неизменным).
Какую стратегию вы обычно используете? Когда вы можете использовать .sort! по сравнению с синтаксисом :order => 'criteria'?