Приносим извинения, если это было ответили раньше или очевидно ... сделал некоторые поиски здесь и в Goog и не смог найти ответ.Сортировка объектов по булевым значениям в Ruby
Я ищу сортировку массива поставщиков по цене и являются ли они предпочтительным_провайдером? (Истина или ложь)
Например, в array p of Providers
...
p1.price == 1, p1.preferred_provider? == false
p2.price == 2, p2.preferred_provider? == true
p2.price == 3, p3.preferred_provider? == true
Я хотел бы p.sort_by и получить:
[p2 p3 p1]
IAW
p.sort_by {|x| x.preferred_provider?, x.price }
не работает и получает ...
undefined method `<=>' for false:FalseClass
Любые предложения по лучшим способам решения этой проблемы?
Фактически у вас почти было: p.sort_by {| x | [X.preferred_provider? ? 0: 1, x.price]}. –
А ... хорошо. рефакторинг кандидата. Благодарю. –