J'écris un morceau de code qui s'intégrera avec TripIt. Dans mes plans TripIt, j'ai un exemple de voyage avec ONE item (Activité). Je veux trier par date. Le tri échoue. Lorsque j'ajoute une autre activité, le tri fonctionne. Je crois que c'est à cause de quand c'est un seul article, c'est un hachage et quand c'est une collection d'articles, c'est un tableau de hachages.Comment réparer ce hachage et/ou ce tableau dans Rails?
Voici ma méthode de tri:
@tripit_trip[k].sort_by { |h| h["StartDateTime"]["date"] }.each do |o|
o["ObjectType"] = "ActivityObject"
tmp[ o["StartDateTime"]["date"] ] = [] if tmp[ o["StartDateTime"]["date"] ].nil?
tmp[ o["StartDateTime"]["date"] ] << o
end
Il échoue sur la première ligne.
Voici ce que les données ressemble à venir de TripIt:
// One item --- id: "20392856" trip_id: "11086745" is_client_traveler: "true" relative_url: /reservation/show/id/20392856 display_name: Programming is_purchased: "true" StartDateTime: date: "2011-01-09" timezone: Asia/Ulaanbaatar
Ce sont les données TripIt quand il y a deux éléments:
// Two items --- - id: "20631958" trip_id: "11086745" is_client_traveler: "true" relative_url: /reservation/show/id/20631958 display_name: Programming 2 is_purchased: "true" StartDateTime: date: "2011-01-09" timezone: Asia/Ulaanbaatar - id: "20392856" trip_id: "11086745" is_client_traveler: "true" relative_url: /reservation/show/id/20392856 display_name: Programming is_purchased: "true" StartDateTime: date: "2011-01-09" timezone: Asia/Ulaanbaatar
Toute idée sur ce que je fais mal serait sois merveilleux.
Merci!
C'est certainement une suggestion raisonnable. En regardant mon code, j'ai un certain nombre d'instructions if pour chaque type d'objet provenant de TripIt. Donc, je devrais mettre cela là aussi. J'envisage déjà de refactoriser le code parce qu'il commence à avoir l'air négligé. Mais c'est certainement une bonne idée. – cbmeeks
Étant donné que TripIt renvoie déjà différentes structures de données pour un résultat par rapport à plusieurs (ce qui est moche, mais rien que vous pouvez contrôler), il ne me semble pas déraisonnable de voir un cas particulier dans votre code. –
Merci pour la suggestion. En fait, je viens de vérifier pour voir si les données retournées sont un hachage ou un tableau. Vraiment nul que TripIt retourne deux structures de données complètement comme ça. Quoi qu'il en soit, cela semble fonctionner: https://gist.github.com/758019 – cbmeeks