2013-05-08 70 views
18

我有一個控制器,返回一個ActiveRecord對象和一個jbuilder視圖的數組來生成j​​son(所有標準的東西)。如果我想要例如哈希數組,效果很好。rails jbuilder - 只是一串字符串

所以例如我有:

json.array!(@list) do |l| 
    json.(l, :field) 
end 

然而其返回

[ 
    { "field": "one" }, 
    { "field": "two" }, 
    { "field": "three" } 
] 

,我想是字符串的陣列;這樣我的json是

[ 
    "one", 
    "two", 
    "three" 
] 

我的jbuilder文件應該是什麼?

回答

40

晚了一點,但是這將工作:

json.array! @list 

但考慮到使用它的塊來創建一個JSON對:

json.data do 
    json.array! @list 
end 

# => { "data" : [ "item1", "item2", "item3" ] } 
+0

謝謝你的答覆:我得到'零不符號'錯誤時,嘗試任何建議。然而,當我做'json.array! @devices do | d | json.i d.device end',它的工作原理(然而,我有一個單一的哈希密鑰'我'然後) – yee379 2013-06-04 23:17:16

+3

只嘗試創建一個字符串數組像'@devices.collect {| d | d.device}'並使用這個數組來創建json。 – irmakcanozsut 2013-06-06 13:18:19

+0

杜!愚蠢的我..當然,我需要'收集'!謝謝! – yee379 2013-06-10 15:55:59

4

如果你想數組作爲值的一些關鍵,這將工作:

json.some_key [1, 3, 4] 
相關問題