ruby – “无法将符号转换为整数”奇怪的错误
发布时间:2020-12-17 03:30:20 所属栏目:百科 来源:网络整理
导读:这是我正在处理的哈希, 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 =
这是我正在处理的哈希,
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" },:@type => "C" },:@tax => "33.0" },#.. } 另外还有一个例子http://pastebin.com/ukTu8GaG. 给我头脑的代码, a[:fares][:itinerary_fare].each do |f| puts f[:@price] end 如果我把它写入控制台,它会给我“无法将符号转换为整数”错误.但是,如果我写,[:票价] [: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,我必须迭代. 我的数据可以显示为http://postimage.org/image/6nnbk9l35/ 解决方法
a [:fares] [:itinerary_fare]是哈希.哈希#每个
yields key-value-pair arrays到块.
所以,f需要例如块中的数组[:@price,“439.0”]. 因此,您使用符号(:@price)作为数组索引.预期整数. 在[:fares] [:itinerary_fare] [:@ price]中你给它作为散列键,当然有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |