我正在构建一个包含动态数量的数据集的chartjs数据对象......在我的Ruby on Rails 5控制器中,我正在尝试以下方法:
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吗?
由于
答案 0 :(得分:2)
在第一行中,您将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