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 的数据。如何在不对代码进行太多更改的情况下做到这一点?我想到的一件事是让我检索到的字符串成为 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) }

然后,您可以收集 JSON 响应并向其附加新ArbitraryGood实例。

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

现在@arbitrary_goods包含一个列表,其中混合了来自两个Good实例的数据和已解析的外部 JSON,以便在您的视图中使用。

于 2012-12-10T12:31:23.803 回答