-3

我有一个嵌套哈希,我从我的上一个问题中创建的嵌套组查询在 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

谢谢

4

1 回答 1

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
          }
        ]
      }
     ]
   }
 ]
}
于 2013-09-01T18:02:49.287 回答