2013-03-11 79 views
0

是否有可能从响应扩展ActiveResource类解组?的ActiveResource请求的扩展ActiveResource类

实施例:

GET http://www.exampleservice.com/products.json 

响应

[{name:'Product X', price:14.5, features:[{name:'Soft'}, {name:'Green'}, {name:'Heavy'}]}] 

该响应将被解组以一个Product对象与Product::Feature对象的数组。是否可以添加一些自定义的方法/属性到这个Product::Feature类?

+0

当然,为什么不?这只是另一堂课。 – 2013-03-11 15:48:03

+0

但是如何?当前代码中是否存在类Product和类Product :: Feature,因为它由ActiveResource取消编组和创建。我在哪里放置扩展类Product :: Feature的代码以及其他代码? – anka 2013-03-12 09:38:21

回答

0

要回答我的问题:

我创建了一个新的模块,包括我的方法和扩展的Product::Feature每个解组对象吧。这看起来像下面这样:

module FeatureExtension 
    def my_method 
    # do something 
    end 
end 

某处后,我收到了一个ActiveResourceProduct使用的代码:

@product.features.each do |feature| 
    feature.extend(FeatureExtension) 
    feature.my_method # Now it is possible to call the method 
end