【发布时间】:2011-07-15 05:31:16
【问题描述】:
如何订购两个不同的课程?所以说Class1和Class2都有相同的字段,我该怎么办(Class1 + Class2).asc(:field)?
【问题讨论】:
如何订购两个不同的课程?所以说Class1和Class2都有相同的字段,我该怎么办(Class1 + Class2).asc(:field)?
【问题讨论】:
你可以这样做,例如
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}
即使你可以使用排序方法来指定 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">]
希望对你有帮助
【讨论】: