我有一个哈希数组,其中键是用户对象(这是因为我正在按用户对搜索结果进行分组,如下所示:) #<User:0x007ffa3d570f00> => ["taco","pizza","unicorn"].
我希望能够通过User对象属性对哈希数组进行排序,如下所示:
search_results.sort_by{|item| item[0].age} #item[0] = User object
Run Code Online (Sandbox Code Playgroud)
但是,这会ArgumentError: comparison of NilClass with Integer failed在遇到年龄为零的第一个用户时抛出.我尝试unless user.age.nil?在sort_by块中添加一个,但这没有帮助.
有任何想法吗?
And*_*all 12
将nil对象视为其他东西,或许0或Float::INFINITY?
search_results.sort_by { |user| user.age || 0 }
Run Code Online (Sandbox Code Playgroud)
既然如此nil.to_i == 0,您还可以这样做:
search_results.sort_by { |user| user.age.to_i }
Run Code Online (Sandbox Code Playgroud)