从View访问实例变量

时间:2013-10-15 07:14:04

标签: 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 = ?", params[:dog_id])
        @appointments = Appointment.all
    end

这两种解决方案都不起作用。当我尝试从约会中获取事件时,我收到一条消息:

undefined method `each' for nil:NilClass

我正在尝试查看所有约会:

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

任何想法这个代码有什么问题?

1 个答案:

答案 0 :(得分:0)

对于这个ajax调用,json返回一个数据,为此你无法直接访问rails

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

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

'data'像[object Object]一样返回,你可以循环它并获取实例值

  

成功(数据){
       var x = new Array();
       alert(“创建新数组”);
       for(var i = 0; i        {
         x [i],x [data [i] .toString()] = function(){};
       }}

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