我有一个#34; Song"对象作为值。这些歌曲对象具有属性“updated_at”'我想按他们排序。我试过像:
@data.values.updated_at.sort
但没有运气。有什么想法吗?
答案 0 :(得分:1)
您想查看documentation of Enumerable#sort_by
e.g。
[{name: 'ryan', number: 3},
{name: 'john', number: 1},
{name: 'june', number: 2}].sort_by{|item| item[:number]}
希望这足以让你前进。
答案 1 :(得分:1)
这很简单:
@data.values.sort_by(&:updated_at)
例如:
class A
attr_reader :updated_at
def initialize(updated_at)
@updated_at = updated_at
end
end
@data = { "Bob"=>A.new(3), "Trixi"=>A.new(1), "Bubba"=>A.new(2) }
#=> {"Bob"=>#<A:0x007ffa191935a0 @updated_at=3>,
# "Trixi"=>#<A:0x007ffa19193550 @updated_at=1>,
# "Bubba"=>#<A:0x007ffa19193528 @updated_at=2>}
@data.values.sort_by(&:updated_at)
#=> [#<A:0x007ffa19193550 @updated_at=1>,
# #<A:0x007ffa19193528 @updated_at=2>,
# #<A:0x007ffa191935a0 @updated_at=3>]