错误:nil的未定义方法'attribute':NilClass

时间:2014-02-03 09:12:46

标签: ruby arrays sorting

我正在尝试通过对象的属性在Ruby中对数组进行排序,但我认为这行代码对数组中的nil元素进行操作。

@my_array.sort_by {|object| object.attribute}

如何确保在我的数组上调用的方法不调用nil元素上的方法?

1 个答案:

答案 0 :(得分:1)

排序前你可以compact数组(这将删除无元素)

sorted_arr = @my_array.compact.sort_by {|object| object.attribute}

此外,这是此特定案例的快捷方式

sorted_arr = @my_array.compact.sort_by(&:attribute)