Я работаю над приложением Sinatra, которое вытягивает список дат через XML-файл, а затем создает хэш всех дат.Ruby parsing XML: нет неявного преобразования String в Integer
У меня возникает странная проблема, которая возникает, когда я вынимаю идентификатор и назначаю его переменной.
Ошибки я получаю: не неявное преобразования строки в Integer и это бросает на event_date_id = event_date["date_id"]
линии. У меня почти идентичный метод в моем коде, и он работает нормально. Когда я puts event_date['date_id']
, он дает мне правильную цифру date_id.
На всякий случай это помогает, класс event_date ['date_id'] - это REXMLUtiliyNodeString, то же самое, что и поле id в другом методе. Если я попытаюсь сделать event_date['date_id'].to_i
, он дает перерывы в этом пункте.
def get_dates(event_id)
url = "some_url_to_some_xml"
puts '==================='
puts "Pulling in #{url}"
puts '==================='
date_xml = Crack::XML.parse(open(url))
dates = {}
date_xml['document']['date'].each do | event_date |
event_date_id = event_date['date_id']
single_date = {
'date_id' => event_date_id,
'date_start' => event_date['datestart'],
'date_end' => event_date['dateend'],
'date_live' => event_date['live'],
'time_start' => event_date['timestart'],
'time_end' => event_date['timestart'],
'date_available' => event_date['date_available']
}
dates.merge!(event_date_id => single_date)
end
return dates
end
Вот формат XML:
<document>
<date>
<date_id>881908</date_id>
<live>y</live>
<datestart>2017-08-14</datestart>
<dateend>2017-08-15</dateend>
<timestart>13:00</timestart>
<timeend>0:00</timeend>
<date_available>10000</date_available>
</date>
<document>
У меня есть чувство, что это что-то очень простое, но я нарушающие покой мой мозг, пытаясь понять это. Если бы кто-нибудь мог пролить свет на это, я бы определенно это оценил.
Редактирование 1: Когда я запускаю код в irb, он действительно работает без ошибок. Где-то кажется, что Синатра, стойка или дробовик мешают.
Я знаю, что это менее полезно, но он отлично работает на моей машине (Mac OS 10.8, ruby 2.0.0) – kristenmills
Спасибо, что посмотрели. Думаю, это делает что-то не так с моей средой! – chantron