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,然后就获取所有约会