我有一个包含2种不同类型对象的数组。他们都有类似的属性,如评级/标题等......
一个例子是:
array = array.sort_by { |o| [o.type1.rating] }
有时数组有2个对象类型type1和type2有没有办法用sort_by方法对它们进行排序?
答案 0 :(得分:1)
你可以使用一些元编程:
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] }