【问题标题】:Ordering two separate classes订购两个单独的课程
【发布时间】:2011-07-15 05:31:16
【问题描述】:

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

【问题讨论】:

    标签: mongodb mongoid


    【解决方案1】:

    你可以这样做,例如

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2018-12-12
      相关资源
      最近更新 更多