Kaminari нумерация страниц с AJAX, была снабжена в "Странице загружается .." - PullRequest
0 голосов
/ 16 июня 2019

Я нашел так много ресурсов в Stackoverflow, которые столкнулись с проблемой, с которой я столкнулся, но, к сожалению, они не сработали для меня, и я, конечно, не знаю, чего мне не хватает.

Чтобы указать на некоторые ссылки, которые я проверял, нотем не менее, ни один из них не исправил это:

http://railscasts.com/episodes/174-pagination-with-ajax

Каминари с AJAX, не в состоянии разбить на страницыt работа

пагинация ajax kaminari не обновляет paginate

Вот что я сделал ниже :

widget_grid.rb

Обратите внимание, что эта таблица создана из Datagrid Gem, и у меня есть приведенные ниже определения таблиц / столбцов, которые хорошо отображаются.

class WidgetsGrid
  include Datagrid
  include Datagrid::Naming
  include Datagrid::ColumnI18n

  # Scope need for the Table
  scope do
    Model.includes(:another_model).where({ column A: %w(mango orange) }).order(created_at: :desc)
  end

  # Filters of the table
  filter(:column_A) # Filter by column A
  filter(:column_B) # You can filter the table by column B

  # Columns of the table
  column(:column_A)
  column(:column_B)
  column(:column_C)
  column(:column_D)

end

widget_controller.rb

class WidgetsController < ApplicationController
  def dashboard
    @grid = WidgetsGrid.new(params[:widgets_grid]) do |value|
      value.where(channel_id: @widget.channel).page(params[:page]).per(3)
    end
    @pagination_params = strip_pagination_params

    respond_to :html, :js
  end

  private

  def strip_pagination_params
    params.inject({}) do |params_hash, param|
      unless param[0]=="controller" || (param[0]=="action")
        params_hash[param[0]] = nil
      end
      params_hash
    end
  end
end

_insight.html.slim

# By virtue of Datagrid Gem, I render the HTML table and its content and pagination using these two lines below:

= datagrid_table @grid
= paginate @grid.assets, :remote => true, params: @pagination_params

dashboard.html.slim

#insight  # note the '#insight' is the same as <div id=insight>
  = render partial: "insight_panel"

dashboard.js.erb

$("#insight").html("<%= escape_javascript(render partial: "insight_panel" ) %>");

app / assets / javascripts / dashboard.js.coffee

#= require jquery
#= require jquery_ujs
#= require dashboard_grid

app / assets / javascripts / dashboard_grid.js

$(function () {
    $(".pagination").on("click", function () {
        $(this).parent().html("Page is loading...");
        $.getScript(this.href);
        return false;
    });
});

Когда я нажимаю ссылку Pagination, it clears the table and I get "Page is loading..." as in the image below, и она не возвращает ни одной страницы пагинации, которую я щелкнул. Как использовать AJAX с Kaminari для нумерации страниц ?Я не знаю, чего мне не хватает, и это, безусловно, расстраивает меня.

Page response

Я также проверил комментарии на Railscast (первая ссылка, которую я разместил там)), Я вижу, что кто-то тоже сталкивался с этой проблемой, но у нее не было решения.

Я использую:

  1. jQuery JavaScript Library v1.11.0

  2. Ненавязчивый скрипт-адаптер для jQuery, который требует jQuery v1.7.0 и выше.

  3. Rails 4
  4. Ruby 2.2.2
...