2012-04-14 13 views
1

私は私のコントローラでこれを持っている:返されたコードがによって処理され[object、Object]、[object、Object]のJSON配列を実際の値に変換しますか?

def selectmodels 
    @brand = Brand.find_by_name(params[:brand_name]) 
    @models = Model.where(:brand_id => @brand.id) 
    render json: @models 
    end 

$.ajax({ 
    url: '/selectmodels?brand_name=' + test, type: 'get', 
    dataType: 'json', 
    processData: false, 
    success: function(data) { 
     if (data == "record_not_found") { 
      alert("Record not found"); 
     } 
     else { 
      alert(data); 
      $('#style_model_name').autocomplete({ source: data }); 
     } 
    } 
}); 

私は私のオートコンプリートテキスト・フィールドにアップロードされた「データ」のキーと値を持っていると思います。

ありがとうございます!

UPDATE:

私は次のように受信します。

[{"brand_id":1,"created_at":"2012-04-09T03:12:43Z","id":1,"name":"x","updated_at":"2012-04-09T03:12:43Z"},{"brand_id":1,"created_at":"2012-04-09T03:15:54Z","id":2,"name":"y","updated_at":"2012-04-09T03:15:54Z"},{"brand_id":1,"created_at":"2012-04-09T09:33:59Z","id":5,"name":"z","updated_at":"2012-04-09T09:33:59Z"}] 
+2

あなたの代わりに何を得るのですか? –

+0

アラート(データ)によって、「[オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]」というアラートポップアップが表示されます...テキストフィールドを使用すると、オートコンプリートが機能しています。タイプ3の空白のフィールドが現れますが、その中には単語はありません。ありがとう! – Abram

+0

..実際、私はオートコンプリートにロードするためにキーが必要ないと思う。ただテキスト値。 – Abram

答えて

2
$.ajax({ 
    url: '/selectmodels?brand_name=' + test, type: 'get', 
    dataType: 'json', 
    processData: false, 
    success: function(data) { 
     if (data == "record_not_found") { 
      alert("Record not found"); 
     } 
     else { 
      var source = []; 
      for (i in data) { 
       for (k in data[i]) { 
        source.push(data[i][k]); 
       } 
      } 
      $('#style_model_name').autocomplete({ source: source }); 
     } 
    } 
}); 

それともあなただけの特定のフィールドをしたい場合:

$.ajax({ 
    url: '/selectmodels?brand_name=' + test, type: 'get', 
    dataType: 'json', 
    processData: false, 
    success: function(data) { 
     if (data == "record_not_found") { 
      alert("Record not found"); 
     } 
     else { 
      var source = []; 
      for (i in data) { 
       source.push(data[i]['name']); 
       source.push(data[i]['id']); 
       source.push(data[i]['brand_id']); 
      } 
      $('#style_model_name').autocomplete({ source: source }); 
     } 
    } 
}); 
+0

それはうまくいった。ありがとうジョー。 – Abram

関連する問題