扩展ActiveResource类

时间:2013-03-11 15:44:09

标签: ruby-on-rails ruby-on-rails-3.2 activeresource

是否可以从响应扩展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类添加一些自定义方法/属性?

1 个答案:

答案 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