Вы можете сделать это, например,
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">]
надеюсь, это поможет