2009-12-10 5 views
1

У меня есть массив с двумя различными типами объектов. Все они имеют схожие свойства, как рейтинги/названия и т.д. ...Ruby sort_by help непредсказуемый атрибут объекта

Примером может служить:

array = array.sort_by { |o| [o.type1.rating] }

Иногда массив имеет типы объектов 2 type1 и type2 есть ли способ сортировки оба используя метод sort_by?

ответ

1

вы можете использовать некоторые метапрограммирования для этого:

array = array.sort_by { |o| o.respond_to?(:type1) ? [o.type1.rating] : [o.type2.rating] } 

Это должно сделать трюк.

0

Вы также можете написать что-то вроде этого

array.sort_by{ |arr| [arr.type1.present? ? arr.type1.rating : arr.type2.rating] } 
Смежные вопросы