我有一个问题。
这是我的班级:
class Provider
include HTTParty
CONFIG = Rails.configuration.mediaset[Rails.env]
def self.category
response = HTTParty.get(CONFIG['category_url'])
category_hash = JSON.parse response.body
if category_hash['resultCode'] == 'OK'
return convert_categories(category_hash)
end
end
def convert_categories(cat_hash)
h = cat_hash.find_all_values_for('categoryList')
category_array = h.map { |c| c.except!('categoryList') }
end
end
当我尝试调用'Provider.category'时,结果为:
undefined method `convert_categories' for Provider:Class
如何添加函数来处理我的哈希?
答案 0 :(得分:4)
正如所建议的那样,只需制作简单的功能"一种类方法......
def self.convert_categories(cat_hash)
h = cat_hash.find_all_values_for('categoryList')
h.map { |c| c.except!('categoryList') }
return h
end
这样做,代码就可以了。
如果没有self.
,则该方法是一个实例方法,只能在Provider类的对象上调用。
虽然诚然h.map...
行没有意义。结果未保存在任何位置,您仍然会返回原始h
对象。