如何在Rails中动态构建哈希数据集?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (8)

我正在构建一个包含动态数量的数据集的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?

提问于
用户回答回答于

在第一行中,您定义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

扫码关注云+社区

领取腾讯云代金券