2012-04-14 171 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

您能得到什麼呢? – 2012-04-14 03:37:41

+0

那麼,警報(數據)會導致一個警告彈出窗口,其中只顯示「[object object],[object Object],[object Object]」...當我使用文本字段時,自動完成正在工作,因爲當我類型3空白字段出現..但他們內部沒有字。謝謝! – Abram 2012-04-14 04:42:42

+0

..實際上,我不認爲我需要加載到自動完成..只是文本值的關鍵。 – Abram 2012-04-14 04:45:35

回答

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 2012-04-14 05:05:51

相關問題