0

応答から非整列化された 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このクラスにいくつかのカスタム メソッド/属性を追加することは可能ですか?

4

1 に答える 1

0

私自身の質問に答えるには:

メソッドを含む新しいモジュールを作成し、非整列化された各オブジェクトを拡張Product::Featureしました。これは次のようになります。

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
于 2013-03-12T14:34:57.313 に答える