rails中的简单ajax

Simple ajax in rails

本文关键字:ajax 简单 rails      更新时间:2023-09-26

我的问题看起来很简单,但奇怪的是,我所尝试的都没有效果。

我只是想用ajax加载一些部分。我把一个模板分成了几个请求,这样页面一次只加载一部分。具体来说,我希望#footnotes元素作为ajax请求加载。

父模板services/index.html.haml看起来像这样:

.services
  - @services.each do |service|
    .service= service.name
      #footnotes 

一旦#footnotes元素加载,我想启动一个ajax调用,将services/_footnotes.html.haml加载到其中。

services/_footnotes.html.haml:

- @footnotes.each do |footnote|
  .footnote= footnote

ServicesController中有一个动作,希望能渲染我的services/_footnotes.html.haml:

  def footnotes
    stop_id = params[:stop_id]
    service_ids = params[:service_ids].split(/,/)
    @footnotes = ServicesHelper.generate_footnotes(service_ids, stop_id)
    respond_to do |format|
      format.html
      format.json { render json: @footnotes }
    end
  end

我已经从我读过的各种答案中尝试了一些javascript解决方案。我尝试过的一个javascript解决方案是:

$("#services").ready(function () {
    $(".service").each(function(index, element) {
        var stop_id = $("#stop_id").data("stopid");
        var service_ids = $(element).data("serviceids");
        $("#footnotes", element).getJson("/stops/" + stop_id + "/services/" + service_ids + "/footnotes");
    });
});

这个特殊的解产生错误Object [object Object] has no method 'getJson'

看来我没能理解这到底是怎么回事。我做错了什么?缺失的是什么?

$.getJSON

and NOT getJson

$.getJSON("your-json-url-here", function(data) {
    //Do stuff on data!
});
jquery getJSON