Rails,如何动态构建Hash数据集
问题描述:
我正在构建包含动态数据集的一个chartjs数据对象...在我的Ruby on Rails 5控制器中,我尝试了以下操作:Rails,如何动态构建Hash数据集
chartJsObject = []
chartJsObject << {
label: "Label Stuff",
datasets: []
}
i = 0
num = 5
while i < num do
chartJsObject.datasets << [rand(10), rand(10)]
i+=1
end
这导致以下错误:
undefined method `datasets' for [{:label=>"Label Stuff", :datasets=>[]}]:Array
任何想法,我做错了这里能够循环并填充chartJsObject.datasets?
由于
答
在第一行中定义chartJsObject
作为数组:
chartJsObject = []
然后在第二,你在推散列对象:现在
chartJsObject << {
label: "Label Stuff",
datasets: []
} #=> [{:label=>"Label Stuff", :datasets=>[]}]
,什么你有一个哈希对象数组。为了插入数据在datasets
你只需要访问哈希对象,可能是这样的:
i = 0
num = 5
while i < num do
chartJsObject[i][:datasets] << [rand(10), rand(10)] if chartJsObject[i]
i+=1
end
谢谢,但这似乎是覆盖相同的数据集。它循环5次,但只返回一个数据集。不是5内chartJsObject.datasets – AnApprentice
任何想法为什么?谢谢 – AnApprentice
因为你可能只用一个散列编写数据集,而不是为不同的数据集插入另一个散列 – Surya