У меня есть массив объектов, которые мне нужно отсортировать по атрибуту position, который может быть целым или нулевым, и мне нужны объекты, у которых позиция nil находится в конце массива. Теперь я могу заставить позицию вернуть некоторое значение, а не nil, чтобы array.sort не терпел неудачу, но если я использую 0 в качестве этого значения по умолчанию, тогда он помещает эти объекты в начало сортировки. Какой лучший способ сделать это? должен ли я просто устанавливать значения nil на какое-то смехотворно большое число, которое "почти" всегда гарантировано в конце? или есть какой-то другой способ, я могу заставить метод array.sort помещать объекты атрибута nil в конец массива? код выглядит следующим образом:
class Parent
def sorted_children
children.sort{|a, b| a.position <=> b.position}
end
end
class Child
def position
category ? category.position : #what should the else be??
end
end
теперь, если я сделаю 'else' чем-то вроде 1000000000, то он, скорее всего, поместит их в конец массива, но мне не нравится это решение, поскольку оно произвольно