【问题标题】:Rails app not displaying ajax requested dataRails 应用程序不显示 ajax 请求的数据
【发布时间】:2015-12-30 00:16:14
【问题描述】:

我正在我的应用程序中进行 AJAX 调用。该调用应该获取分页内容的第二页并将其显示在第一页下方。调用成功,只有 AJAX 获取的数据以 JS 形式返回,如下代码所示:

Started GET "/links?_=1451434087187&page=4" for ::1 at 2015-12-29 19:08:13 -0500
Processing by LinksController#index as JS
  Parameters: {"_"=>"1451434087187", "page"=>"4"}

如果不使用 AJAX 调用,而我只是单击应用程序中的分页链接之一,请求的数据将以 html 形式返回:

Started GET "/links?_=1451434246208&page=1" for ::1 at 2015-12-29 19:11:13 -0500
Processing by LinksController#index as HTML
  Parameters: {"_"=>"1451434246208", "page"=>"1"}
  Link Load (0.2ms)  SELECT  "links".* FROM "links"  ORDER BY "links"."cached_votes_score" DESC LIMIT 5 OFFSET 0
   (0.2ms)  SELECT COUNT(*) FROM "links"

我在控制器中包含了一个 respond_to 来尝试接受 JS 数据,但它不起作用:

  def index
    @links = Link.order(cached_votes_score: :desc).paginate(page: params[:page], per_page: 5)

    respond_to do |format| 
      format.js
      format.html
    end
  end

link.coffee.js:

jQuery ->
    $(window).scroll ->
        url = $('.pagination .next_page').attr('href')
        if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
            $('.pagination').text("Fetching more products...")
            $.getScript(url)

index.js.erb:

    $('#link').append('<%= j render(@links) %>');
    <% if @links.next_page %>
     $('.pagination').replaceWith('<%= j will_paginate(@links) %>');
    <% else %>
        $('.pagination').remove();
    <% end %>

_link.html.erb:
<!-- order links based on total number of votes -->

  <div class="link row clearfix">
    <h2>

    </h2>
    <h2>
      <%= link_to link.title, link %><br>
    </h2>
    <p>
      <%= link_to link.url, link %><br>
    </p>

<!-- acts_as_votable for like_link -->
    <div class="btn-group">
        <%= link_to like_link_path(link), method: :put, class: "btn btn-default btn-sm" do %>
          <span class="glyphicon glyphicon-chevron-up"></span>
          Upvote
          <%= link.get_upvotes.size %>
        <% end %>
        <%= link_to dislike_link_path(link), method: :put, class: "btn btn-default btn-sm" do %>
          <span class="glyphicon glyphicon-chevron-down">
          Downvote
          <%= link.get_downvotes.size %>
        <% end %>
    </div>
  </div>

谁能提供帮助?

【问题讨论】:

  • 你能出示一份你的 javascript ajax 代码吗?
  • @VincentAlgayres 我用它编辑了我的问题
  • @Jbur43 能否请您显示呈现的 JavaScript 和 HTML?这是一个客户端问题,很容易调试。
  • @PraveenKumar 我为模板渲染发布了部分链接。
  • @PraveenKumar 我发布了我更新的部分内容,我仍然难以显示内容

标签: jquery ruby-on-rails ajax templates pagination


【解决方案1】:

我在我的脚本中使用了#link 选择器,但在我的模板中没有设置链接的 div id。现在我添加了它,效果很好。

<div class="link row clearfix" id='link'> <h2> <%= link_to link.title, link %><br> </h2> <p> <%= link_to link.url, link %><br> </p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-24
    • 2013-07-28
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2020-04-23
    相关资源
    最近更新 更多