1
我有一个数组与2种不同类型的对象。它们都具有相似的特性,像收视率/标题等等红宝石sort_by帮助不可预知的对象属性
一个例子是:
array = array.sort_by { |o| [o.type1.rating] }
有时数组有2对象类型Type1和Type2有什么办法来排序他们两人使用sort_by方法?
我有一个数组与2种不同类型的对象。它们都具有相似的特性,像收视率/标题等等红宝石sort_by帮助不可预知的对象属性
一个例子是:
array = array.sort_by { |o| [o.type1.rating] }
有时数组有2对象类型Type1和Type2有什么办法来排序他们两人使用sort_by方法?
你可以使用一些这方面的元编程:
array = array.sort_by { |o| o.respond_to?(:type1) ? [o.type1.rating] : [o.type2.rating] }
这应该做的伎俩。
你也可以写这样的事情
array.sort_by{ |arr| [arr.type1.present? ? arr.type1.rating : arr.type2.rating] }