2012-12-10 106 views
0

我有红宝石(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的一部分,但我不知道如何做到这一点。

换句话说,检索到的名称,描述和类型将被撒入型好,然后将使用现有的页面,创建,以显示我们的产品同时显示,我们和取回货物。我怎样才能做到这一点?这是关于它的正确方法吗?

+1

你能成为一个更具体一点,你想达到什么?代码示例或期望的输出可能会使其更易于理解。 –

+0

@MarkThomas:我有一个UI来显示我们的商品。它被绑定到良好的类,并为其配置。我需要使用相同的页面来显示这些新信息。由于字段匹配,我想我能以某种方式让这些检索一个字符串类型的类良好的,并使用相同的UI页面来显示所有的信息 - 我们自己,和检索信息。我怎样才能做到这一点? – CodingInCircles

+0

你是说你在MongoDB中有货,并从Web服务中检索商品,并要使用两个相同的模型?当你尝试时会发生什么? –

回答

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数据混合。

+0

这几乎可以解答我的问题。我会给它一个镜头,让你知道。谢谢! :) – CodingInCircles

+0

不过,如果这意味着我必须配置我html.erb文件以匹配ArbitraryGood的定义是什么? – CodingInCircles

+0

我不知道你的观点是什么样子,所以我不可能回答这个问题。 – deefour