2012-02-03 10 views
1

私はrender :json => my_arrでレンダリングするルビーのハッシュの配列を持っています。しかし、私の見解では、文字列として参照し、jQueryで繰り返し処理すると、一度に配列の要素の1つではなく、一度に1つの文字が理解されます。私のコントローラでレンダリング:json =>結果が文字列としてレンダリングされます

私の見解では
logger.debug(my_arr) # prints [{"foo1"=>"bar1”},{“foo2”=>”bar2”}] 
render :json => my_arr 

function query_facebook_for_roommate(){ 
    $.ajax({ 
     type: "GET", 
     url: "send_to_my_controller", 
     success: function(data){ 
      //I see data: "[{"foo1"=>"bar1”},{“foo2”=>”bar2”}]" in the chrome debugger 
      jQuery.each(data, display_result) 
      //This iterates over each character, eg: [, {, " etc. instead of each element {"foo1"=>"bar"}, {"foo2"=>"bar2"} etc. 
    }); 
} 

これは昨日の作業が、今それが壊れて何らかの理由でました。以前のリビジョンをチェックアウトしましたが、今も壊れています。どのように私はこれをデバッグする必要がありますか?

答えて

2

戻り値がJSONとして解析されていない可能性があります。

success: function(data){ 
    var parsed_data = $.parseJSON(data); 
    jQuery.each(parsed_data, display_result); 
} 

または "JSON" として設定dataTypeオプション、追加してください:このお試しください

$.ajax({ 
    ... 
    dataType: 'json' 
    ... 
}); 
+0

おかげで、これは働いていました!レンダリング=>:jsonはjsonとしてビューに送信すると仮定していましたか? – stackOverlord

+0

私はそれもMIMEタイプに依存すると信じています。だから、まだ間違っている場所があります。 –

関連する問題