Voici le code:Pourquoi l'erreur "L'erreur s'est-elle produite lors de l'évaluation de <=>" lors de l'utilisation de sort_by?
xml = REXML::Document.new(data)
@contacts = Array.new
xml.elements.each('//entry') do |entry|
person = {}
person['name'] = entry.elements['title'].text
gd_email = entry.elements['gd:email']
person['email'] = gd_email.attributes['address'] if gd_email
@contacts << person
end
@contacts.sort_by { |k| k['name'] } if @contacts[0].size > 0
l'erreur:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<=>
Erreur résolue mais non triée – rtacconi
@rtacconi '# sort_by' ne classe pas le tableau, mais retourne un nouveau tableau trié. Peut-être que vous vouliez dire '@contacts = @ contacts.sort_by ...' – Phrogz
Oui, vous devez, en général, suffixer [array methods] (http://ruby-doc.org/core/classes/Array.html#M002185) avec un '!' pour eux de modifier le tableau actuel. – david4dev