これは私が取り組んでいるハッシュです。
a = {
#...
:fares => {
:itinerary_fare => {
:segment_names=>"C",
:free_seats => "6",
:fare_for_one_passenger => {
:free_seats=>"0",
:@currency => "TL",
:@non_refundable => "false",
:@price => "439.0",
:@service_fee => "25.0",
:@tax => "33.0",
:@type => "Y"
},
:@currency => "TL",
:@non_refundable => "false",
:@price => "439.0",
:@service_fee => "25.0",
:@tax => "33.0",
:@type => "C"
},
:@currency => "TL",
:@tax => "33.0"
},
#..
}
ここにも別の例http://pastebin.com/ukTu8GaGがあります。
頭が痛くなるコード、
a[:fares][:itinerary_fare].each do |f|
puts f[:@price]
end
これをコンソールに書き込むと、「シンボルを整数に変換できません」というエラーが表示されます。しかし、私が書くと、a[:fares][:itinerary_fare][:@price]
それはかなりうまくいきます。
最も奇妙な部分は、コードをhamlファイルに書き込む場合です
%tbody
-@flights.each do |a|
%tr.flight
%td
-a[:fares][:itinerary_fare].each do |f|
-puts f[:@price] #Weird stuff happens here
.prices
%input{:type=>"radio",:name=>"selectedfight",:value=>"#{a[:id]}"}
= f[:@price]
%br
動作し、価格をコンソールに出力しますが、同じ行で失敗します。
can't convert Symbol into Integer file: flights.haml location: [] line: 18
これは私が今まで見た中で最も気がかりなエラーです。助けてくれてありがとう。
ほとんどの場合、複数の 1:itinerary_fare
があるため、反復する必要があります。