2013-10-15 149 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返回一个实例变量值现在你可以在你的视图中访问它