Я использую Ruby on Rails 3, и я хотел бы решить проблему со следующим кодом, когда приложение веб-клиента получает некоторые данные JSON из приложения веб-службы, которое использует промежуточное программное обеспечение Rack для ответа.
В модели приложения веб-клиента у меня есть
response_parsed = JSON.parse(response.body)
if response_parsed["account"]
...
else
return response
end
В приведенном выше коде response.body
возвращается из приложения веб-службы, которое использует промежуточное программное обеспечение Rack для ответа веб-клиенту:
accounts = Account.where(:id => ids)
[200, {'Content-Type' => 'application/json'}, accounts.to_json] # That is, response.body = accounts.to_json
Передача данных в порядке, но я получаю следующую ошибку
TypeError
can't convert String into Integer
*Application Trace*
lib/accounts.rb:107:in `[]'
Строка 107
соответствует
if response_parsed["account"]
...
Где и что такоепроблема?Как это решить?
Если я попытаюсь отладить respons.body
, я получу
# Note: this is an array!
"[{\"account\":{\"firstname\":\"Semio\",\"lastname\":\"Iaven\"\"}}]"