Как мне исправить эту сортировку хешей и / или массивов в Rails? - PullRequest
0 голосов
/ 29 декабря 2010

Я пишу кусок кода, который будет интегрирован с TripIt.В моих планах TripIt у меня есть пример поездки с ОДНЫМ элементом (Activity).Я хочу отсортировать по дате.Сортировка не удалась.Когда я добавляю другую активность, сортировка работает.Я полагаю, что это потому, что когда это один элемент, это хеш, а когда это набор элементов, это массив хешей.

Вот мой метод сортировки: </p> <pre><code> @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

Ошибка в первой строке.

Вот как выглядят данные, поступающие из 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

Это данные TripIt, когда их дваitems:

 // 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

Любое понимание того, что я делаю неправильно, было бы замечательно.

Спасибо!

1 Ответ

1 голос
/ 29 декабря 2010

С одним элементом в списке вам не нужно сортировать. Почему бы просто не вставить if в код, пропускающий сортировку, если есть только один возвращаемый элемент?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...