2013-10-15 151 views
0

我有這個電話在我看來:訪問實例變量從View

$.ajax({ 
     type: "GET", 
     url: "/appointments", 
     data: "dog_id="+ dog_id 
    }); 

我的路線:

match '/appointments', to: 'appointments#index', via: 'get' 

控制器動作:

def index 
     @appointments = Appointment.where("dog_id = ?", params[:dog_id]) 
     @appointments = Appointment.all 
    end 

這兩種解決方案的不工作。當我嘗試獲取來自約會活動中,我收到一條消息:

undefined method `each' for nil:NilClass 

我試圖讓所有的約會中查看:

<% @appointments.each do |appointment| %> 

任何想法是錯誤的代碼?

+0

日誌說什麼? –

+0

你檢查了params [:dog_id]的值嗎?是否有該dog_id的記錄? – crazybob

+1

你可以讓你的代碼更簡潔,它相當於'@appointments = Appointment.where(dog_id:params [:dog_id])' – synapse

回答

0

對於這個Ajax調用,JSON返回一個數據,這個你不能直接在軌

,這樣你們可以嘗試這樣的代碼來訪問,

$.ajax({ 
    type: "GET", 
    url: "/appointments", 
    dataType: "json", 
    data: "dog_id="+ dog_id, 
    success:function(data){ 
    alert(data); 
    } 
}); 

,像「數據」回報一個[對象對象],你可以循環,並得到實例值

成功(數據){
var x = new Array();
alert(「created new array」);
爲(VAR I = 0;我 {
X [I]中,x [數據[I]的ToString()] =函數(){};
}}

X返回一個實例變量值現在你可以在你的視圖中訪問它