【问题标题】:Pagination not working only with a certain query分页仅适用于某个查询
【发布时间】:2016-04-08 09:40:59
【问题描述】:

我正在使用 Kaminari gem 使用 ajax 进行分页

我在同一个页面上有三个分页

    @all_questions = Question.where.not(id: current_user.question_ids).page(params[:unanswered]).per(1)

    @wrong = Tracker.where("user_id = ? AND correct = ?", current_user, false).page(params[:wrong_answers]).per(1)

    @answered = Tracker.where("user_id = ? AND answered = ?", current_user, true).page(params[:all_answered]).per(1)

虽然上面的最后两个实例变量正常工作。第一个当我单击下一步按钮时,当我看到在 rails 控制台中发生 ajax 请求时,它不会刷新页面。

在我看来

<%= paginate @all_questions, :remote => true, :param_name => "unanswered" %>
<%= paginate @wrong, :remote => true, :param_name => "wrong_answers" %>
<%= paginate @answered, :remote => true, :param_name => "all_answered" %>

有人知道为什么吗?

html

     <section role="tabpanel" aria-hidden="true" class="content" id="panel2-2">
        <div class="row">
          <div class="large-10 large-offset-1 columns">
            <div class="panel questions-progress-panel">
              <ul>
                <div id="unanswered">
                  <%= render partial: "all_questions" %>
                </div>
                <div id="paginator4" class="text-center paginator">
                  <%= paginate @all_questions, :remote => true, :param_name => "unanswered" %>
                </div>
              </ul>
            </div>
          </div>
        </div>
      </section>

@all_questions 部分

<% @all_questions.each do |q| %>
  <li>
    <div class="wrapper">
      <div class="row">
        <div class="large-8 medium-8 small-8 columns">
          <p class="question-title"> <%= q.description %> </p>
        </div>
        <div class="large-4 medium-4 small-4 columns text-right">
          <%= link_to "Go", category_question_path(q.category,q), class:"button round success" %>
        </div>
      </div>
    </div>
  </li>
<% end %>

【问题讨论】:

  • @all_questions 是什么样的?它至少包含问题吗?
  • 是的,它在执行查询后包含两个。我可以看到它们显示,在分页控件中也显示了两个页面 [1,2 next last],它只是没有分页工作。 Kaminari 是否期望某种结构或什么?
  • 如果我没记错的话 Kaminari 期望结构的 Relations 类型。您能否在控制台中检查使用上述所有结果的类的类型,例如将 p @all_questionsp @wrong 等放入您的代码并运行它,然后查看控制台显示的内容。这些关系是什么类型的
  • @Aleks 你的回答确实很有效! :) 希望 Petros 解决这个问题!
  • 为你们俩干杯!

标签: ruby-on-rails ruby ajax pagination kaminari


【解决方案1】:

您对应的js.erb 可能如下所示:

$('#unanswered').html('<%= escape_javascript render(all_questions) %>');
$("#paginator4").html('<%= escape_javascript(paginate(@all_questions, :remote => true).to_s) %>');

【讨论】:

    猜你喜欢
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2014-01-11
    • 2023-03-17
    • 2015-02-09
    • 1970-01-01
    • 2018-05-11
    相关资源
    最近更新 更多