订购两个单独的类

时间:2011-07-15 05:31:17

标签: mongodb mongoid

如何订购两个不同的课程?所以说Class1和Class2都有相同类型的字段,我该怎么做(Class1 + Class2).asc(:field)?

1 个答案:

答案 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">]

希望这会有所帮助