如何从哈希中返回数据的随机抽样

时间:2016-09-12 03:32:36

标签: ruby hash sinatra erb openstruct

我已经将一个json文件(由一个名为&#34的单个数组;项目"包含4个键值对)组成一个OpenStruct,以便我可以将我的数据视为对象。我现在想在网页上随机显示每个对象。

# read json file and parse into OpenStruct
def read_json(url)
    json_file = File.read(url)
    json_obj = JSON.parse(json_file, object_class: OpenStruct)
    return json_obj
end

# sample array
def random_display(json)
    out = json.items.sample
    return out
end

我的json基本上就像:

{
    "items": [
        {
            "foo": "bar",
            "foo": "bar"
        },
        {
            "foo": "bar",
            "foo": "bar"
        },
}

最后,在我的Sinatra路线中,我得到了:

get '/' do
  @data = read_json("public/data.json")
  @random = random_display(@data)
  erb :index
end

在我的erb页面中,我使用<%= @random %>并获得一个简单的#作为结果。为什么?我的意思是,我知道它是因为我没有告诉它显示任何一个特定键的价值。但是我该如何解决这个问题?

另一件事 - 我觉得我正在尝试做的事情(这就是创建一个小游戏,要求你选择更昂贵的两个随机选项) - 从根本上说错。

0 个答案:

没有答案