2013-09-01 60 views
-3

我有我從我的一題生成Nested group query in Rails傳遞散列數據的JavaScript

散列現在是一個嵌套的哈希:

{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 

感謝

+0

第二個代碼片段中的語法無效。沒有最佳實踐。如何將它發送給客戶端取決於您的應用程序。如果數據在生成頁面時可用,則可以將其與頁面的其餘部分一起發送。如果你正在使用ajax並且它可用,那麼使用ajax。 – akonsu

+0

這是爲什麼被拒絕? –

+0

謝謝akonsu,頁面生成時數據將不可用。我想我會通過json傳遞它,因爲我正在使用的js框架可以處理這個問題。你知道是否有可能在我的應用屬性名稱中添加密鑰? –

回答

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 
      } 
     ] 
     } 
    ] 
    } 
] 
}