I installed 'ActiveSupport' and required 'active_support' in my code, but I get a "No Method Error" when I try to use the Hash.from_xml()
method.
What am I missing?
$ gem list
returns:
\*** LOCAL GEMS \***
activesupport (3.2.6)
bundler (1.1.4)
i18n (0.6.0)
json (1.7.3)
mime-types (1.19)
multi_json (1.3.6)
rake (0.9.2.2)
rest-client (1.6.7)
rubygems-bundler (1.0.3)
rvm (1.11.3.5)
And:
$ ruby -v
returns:
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]
The contents of file.rb
are:
require 'active_support'
require 'rest-client'
require 'json'
token = "xxx"
user = "xxx"
survey_id = "xxx"
responses_from_api = RestClient.get "https://survey.qualtrics.com/WRAPI/ControlPanel/api.php?Request=getLegacyResponseData&User=#{user}&Token=#{token}&Version=2.0&SurveyID=#{survey_id}&Format=XML"
responses = Hash.from_xml(responses_from_api).to_json
puts responses
And:
$ ruby file.rb
returns:
file.rb:8:in `<main>': undefined method `from_xml' for Hash:Class (NoMethodError)
Just require 'active_support'
doesn't do very much, you have to pull in the pieces sort of by hand. If you want all of ActiveSupport:
require 'active_support/all'
or if you just want the Hash extensions:
require 'active_support/core_ext/hash'
来源:https://stackoverflow.com/questions/11479210/what-do-i-need-to-do-to-get-hash-from-xml-to-work