【发布时间】: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_questions、p @wrong等放入您的代码并运行它,然后查看控制台显示的内容。这些关系是什么类型的 -
@Aleks 你的回答确实很有效! :) 希望 Petros 解决这个问题!
-
为你们俩干杯!
标签: ruby-on-rails ruby ajax pagination kaminari