0

次のように、Ruby (on Rails) にクラスがあります。

class Good
  include MongoMapper::Document
  has_many :offers, :dependent => :destroy

  key :name,         String
  key :description,  String
  key :email,        String
  key :offers,       Array
  key :type,         String
end

外部 URL から JSON オブジェクトを解析し、このクラスの型の部分セットのみを取得しています。つまり、名前、説明、および型のみを取得できます。私のサーバーには、表示できるページとデータが既にあります。外部URLからのデータもページに表示したいと思います。コードをあまり変更せずにこれを行うにはどうすればよいですか? 私が考えたことの 1 つは、取得した文字列をクラス Good の一部にすることでしたが、どうすればそれができるかわかりません。

言い換えると、取得された名前、説明、およびタイプは Good 型にキャストされ、商品を表示するために作成された既存のページを使用して、商品と取得された商品の両方を表示します。これどうやってするの?これは正しい方法ですか?

4

1 に答える 1

1

あなたの質問はかなり不明確ですが、私はショットを取ります。あなたはStruct好きになることができます

ArbitraryGood = Struct.new(:name, :description, :type)

Good次に、インスタンスのコレクションをこれにマップできます

@arbitrary_goods = Good.all.map { |g| ArbitraryGood.new(g.name, g.description, g.type) }

ArbitraryGood次に、JSON応答を収集し、それに新しいインスタンスを追加できます。

objects_from_json = ... # for you to implement
@arbitrary_goods += objects_from_json.map { |o| ArbitraryGood.new(o.name, o.description, o.type) }

これで、ビュー内で使用するために、両方のインスタンスからのデータと解析された外部JSONが@arbitrary_goods混在する単一のリストが含まれます。Good

于 2012-12-10T12:31:23.803 に答える