0
TripItと統合するコードを書いています。私のTripItプランでは、1つのアイテム(アクティビティ)を使用した旅行例があります。私は日付でソートしたい。ソートは失敗します。別のアクティビティを追加するとソートが機能します。私はそれが単一のアイテムであると考えています。それはハッシュです。アイテムのコレクションでは、ハッシュの配列です。 このハッシュや配列ソートをRailsで修正するにはどうすればよいですか?
@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はから来るように見えるものです:
// 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
私は間違った考えをやって上の任意の洞察力:
// 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
これは、2つの項目があるときTripItのデータであり、素晴らしい。
ありがとうございます!
これは確かに合理的な提案です。私のコードを見ると、TripItから来るオブジェクトの種類ごとにif文がかなりあります。だから私はそこにも置く必要があります。私はすでにコードがリファクタリングされていると考えています。しかしそれは確かに良い考えです。 – cbmeeks
TripItは、1つの結果に対して複数の異なるデータ構造を返していることを考えると(醜いですが、制御することはできません)、コード内の1つの要素に対して特別な処理をするのは不合理ではないようです。 –
提案していただきありがとうございます。私は実際には、返されたデータがハッシュまたは配列であるかどうかをチェックしました。 TripItがそのような2つの完全なデータ構造を返すのは本当にうんざりです。とにかく、これは動作するように見えます:https://gist.github.com/758019 – cbmeeks