如何订购两个不同的课程?所以说Class1和Class2都有相同类型的字段,我该怎么做(Class1 + Class2).asc(:field)?
答案 0 :(得分:0)
你可以这样做,例如
class A
attr_accessor :f1
end
class B
attr_accessor :f1
end
a=A.new
a.f1="a"
b=B.new
b.f1="b"
arr = []
arr << b << a
=> [#<B:0x6153e0c0 @f1="b">, #<A:0x55a517bd @f1="a">]
你可以按
排序arr.sort_by(&:f1)
=> [#<A:0x55a517bd @f1="a">, #<B:0x6153e0c0 @f1="b">]
是
的缩写形式arr.sort_by {|x| x.f1}
即使您可以使用sort方法指定asc,desc
>> arr.sort{|x,y| x.f1 <=> y.f1}
=> [#<A:0x55a517bd @f1="a">, #<B:0x6153e0c0 @f1="b">]
>> arr.sort{|x,y| y.f1 <=> x.f1}
=> [#<B:0x6153e0c0 @f1="b">, #<A:0x55a517bd @f1="a">]
希望这会有所帮助