2012-07-13 22 views
11

Tôi đã cài đặt 'ActiveSupport' và được yêu cầu 'active_support' trong mã của mình, nhưng tôi nhận được "No Method Error" khi tôi cố gắng sử dụng phương thức Hash.from_xml().Tôi cần làm gì để có được Hash.from_xml() để hoạt động?

Tôi đang thiếu gì?

$ gem list 

lợi nhuận:

\*** 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) 

Và:

$ ruby -v 

lợi nhuận:

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0] 

Nội dung file.rb là:

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 

Và:

$ ruby file.rb 

lợi nhuận:

file.rb:8:in `<main>': undefined method `from_xml' for Hash:Class (NoMethodError) 

Trả lời

32

Chỉ require 'active_support' không làm rất nhiều, bạn phải kéo trong các mảnh loại bằng tay. Nếu bạn muốn tất cả các ActiveSupport:

require 'active_support/all' 

hoặc nếu bạn chỉ muốn các phần mở rộng Hash:

require 'active_support/core_ext/hash' 
+0

Awesome, cảm ơn! –