Javascript 从视图访问实例变量

Javascript 从视图访问实例变量,javascript,ruby-on-rails,ruby,ajax,activerecord,Javascript,Ruby On Rails,Ruby,Ajax,Activerecord,我认为这是一个呼吁: $.ajax({ type: "GET", url: "/appointments", data: "dog_id="+ dog_id }); 我的路线: match '/appointments', to: 'appointments#index', via: 'get' 控制器操作: def index @appointments = Appointment.where("dog_id = ?",

我认为这是一个呼吁:

    $.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| %>


你知道这段代码有什么问题吗?

对于这个ajax调用,json返回一个数据,对于这个,你不能直接在rails中访问

所以你可以试试这样的代码

$.ajax({
  type: "GET",
  url: "/appointments",
  dataType: "json",
  data: "dog_id="+ dog_id,
  success:function(data){
     alert(data);
   }
});
“数据”像[object object]一样返回,您可以循环它并获取实例值

成功(数据){
var x=新数组();
警报(“已创建新阵列”);
对于(var i=0;i {
x[i],x[data[i].toString()]=function(){};
}}


x返回一个实例变量值,现在您可以在视图中访问它。

日志怎么说?您是否检查了params[:dog\u id]的值?是否有带有该dog\u id的记录?您可以使代码更简洁,它相当于
@Appointment=Appointment。其中(dog\u id:params[:dog\u id])
即使没有具有该dog_id的记录,它也不应该接收NilClass,相反,它将返回一个空数组..您可以尝试更改实例变量名,或者只是在视图中尝试查询行..只是为了确定错误可能在哪里..视图看起来如何?是index.js.erb吗?您尝试呈现一些约会的地方吗你为什么用params获取@appoints,然后就获取所有约会