将哈希数据传递给javascript

时间:2013-09-01 16:18:27

标签: javascript ruby-on-rails ruby activerecord hash

我有一个嵌套的哈希,我是从前一个问题Nested group query in Rails

创建的

哈希现在是:

   {14=>{11=>{21=>7, 22=>8}, 4=>{21=>7, 22=>4}}, 16=>{5=>{25=>2, 26=>1}, 11=>{26=>2, 25=>5}} }

我想将这些数据传递给javascript,我认为最好为每个属性/模型设置关键名称,如下所示:

   { question_id: 14=>{ club_id: 11=>{ choice_id: 21=>7, choice_id: 22=>8} etc etc}

我的问题是,这是将Rails中的数据传递给Javascript的最佳做法,还是最好从控制器的json变量执行此操作。

如果我正在尝试的方法很好,有没有办法在哈希中设置键名作为我的初始查询中的属性名称?

Answer.where(:question_id => 14).group(:club_id, :choice_id).count

由于

1 个答案:

答案 0 :(得分:0)

没有这样的结构:

 { question_id: 14 => { club_id: 11 => { choice_id: 21 => 7, choice_id: 22 => 8 }

您尝试将哈希值与其他值相关联,这是一个无效的结构。实现语义结构的一种方法(意味着反映您的计数和id彼此的实际关系的结构),以便您可以通过JSON将其传递给浏览器,就像构建一个类似于以下内容:

{ questions: [
  { 
    id: 14,
    clubs: [
      {
        id: 11,
        choices: [
          {
            id: 21,
            count: 7
          },
          {
            id: 22,
            count: 8
          }
        ]
      }
     ]
   }
 ]
}