是否可以从响应扩展Activemaesource类?
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 :(得分:0)
回答我自己的问题:
我创建了一个包含我的方法的新模块,并使用它扩展了Product::Feature
的每个unmarshalled对象。这看起来如下:
module FeatureExtension
def my_method
# do something
end
end
在我从Product
收到ActiveResource
之后的某个地方,我使用了代码:
@product.features.each do |feature|
feature.extend(FeatureExtension)
feature.my_method # Now it is possible to call the method
end