У меня есть небольшой пример 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'
?