2013-05-08 5 views
18

私は、ActiveRecordオブジェクトの配列を返すコントローラと、json(すべて標準のもの)を生成するjbuilderビューを持っています。私は、例えばハッシュの配列をしたい場合は素晴らしい作品。rails jbuilder - 文字列の配列

ので、たとえば、私は持っている:

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

しかし、私は、文字列の配列だけをしたいを返し

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

を。私のjsonは

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

私のjbuilderファイルは何ですか?

答えて

40
少し遅く

が、これは動作します:

json.array! @list 

しかし、JSONペアを作成するために、ブロック内でそれを使用するために検討してください。

json.data do 
    json.array! @list 
end 

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

返信いただきありがとうございます。いずれかの候補をお試しになると「nil is not symbol」エラーが表示されます。しかし、私が 'json.array! @devices do | d | json.i d.device end'、それは動作します(しかし、私は1つのキーを持つanonハッシュの配列を 'i'とします) – yee379

+3

'@devices.collect {| d |のような文字列の配列を作成しようとします。 d.device} 'を作成し、この配列を使用してjsonを作成します。 – irmakcanozsut

+0

duh!愚かな私..もちろん私は '収集'が必要!ありがとう! – yee379

4

あなたには、いくつかのキーの値として配列をしたい場合

json.some_key [1, 3, 4]