У меня есть массив хэшей, которые выглядят как:Сортировка массива хэшей в рубин
ward = {id: id, name: record["Externalization"], mnemonic: record["Mnemonic"],
seqno: record["SeqNo"]}
Все поля являются строками.
Теперь я хочу отсортировать их сначала по seqno, а затем по названию. seqno может быть nil (если seqno nil, то эта палата должна прибыть после тех, у кого есть seqno).
То, что я до сих пор:
wardList.sort! do |a,b|
return (a[:name] <=> b[:name]) if (a[:seqno].nil? && b[:seqno].nil?)
return -1 if a[:seqno].nil?
return 1 if b[:seqno].nil?
(a[:seqno] <=> b[:seqno]).nonzero? ||
(a[:name] <=> b[:name])
end
Но это дает мне ошибку: не может преобразовать символ в Integer
Да, но что, если [: seqno] nil? –
Я получаю ошибку без имплицированного преобразования от нуля до целого. –
@Lieven: Проверьте изменения. –