2009-12-10 3 views
1

2 가지 유형의 객체가있는 배열이 있습니다. 그들은 모두Ruby sort_by 예기치 않은 객체 속성

예는 ... 평가/제목 등과 같은 유사한 특성을 가지고 :

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

때때로 배열 둘을 정렬 할 수있는 방법을 2 개체 유형의 타입 1과 타입 2가되어있다 sort_by 메서드 사용? 트릭을 할해야

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

:

답변

1

당신은이에 대한 몇 가지 메타 프로그래밍을 사용할 수 있습니다.

0

또한이

array.sort_by{ |arr| [arr.type1.present? ? arr.type1.rating : arr.type2.rating] } 
같은 것을 쓸 수 있습니다