2010-11-24 11 views
-1

私はJSONを使用して、いくつかのオブジェクトをレンダリング:RailsレンダリングJSON - > Square Bracket?

def index 
    if user_signed_in? 
    @todos = current_user.todos.find_all() 
    render :json => @todos 
    else 
    return nil 
    end 
end 

それは実際にそれを行うが、問題があります。私はスクエアブラケットを取得しているので、いくつかのプラグインまたはjsonの視聴者はそれらのためにそれを読むことができません。ここにいくつかのサンプル出力:

[{"todo":{"name":"Test todo","created_at":"2010-11-24T07:40:07Z","updated_at":"2010-11-24T07:40:07Z","done":0,"id":1,"user_id":1}},{"todo":{"name":"Ali Test","created_at":"2010-11-24T07:40:30Z","updated_at":"2010-11-24T07:40:30Z","done":0,"id":2,"user_id":1}}] 

ありがとうございました!

+1

find_allは配列を返します。これはまさに期待するべきJSONです。 – aceofspades

+0

ああ、大丈夫です。だから、どのように私は実際にそれらの配列のブラケットを持っているすべてのエントリをレンダリングすることができますか? – Tronic

+0

'@ todos.each {| t | t.to_json} 'は、個別にレンダリングできるjsonオブジェクトの配列を提供します。 – aceofspades

答えて

0

試しましたか?

render :json => @todos.to_json 
+0

いくつかの出力は..... – Tronic

0

あなたはハッシュではなく配列をレンダリングする必要が期待されているJSON出力を得るために。 OP構文と

What is the best way to convert an array to a hash in Ruby

クイック概要:いくつかのケースで

render :json => Hash[*@todos.flatten] 

または非対称アレイの

render :json => Hash[@todos.map {|key, value| [key, value]}] 

このけれどもここ は、変換に関する詳細なポストであります余計なヌルを追加してしまい、配列を分割してフラット化したり、[[これまで可能だった。

関連する問題