现在我有一页测验,所有问题都在另一个下面。 我想要做的是让用户在不改变网站的情况下循环下一个/上一个问题(ergo url不会改变),在循环完所有问题之后,让用户提交表单并查看结果。 paginate gem并不是它。
有没有办法只在rails中执行此操作?
答案 0 :(得分:0)
这很简单,在rails中搜索无尽的滚动,你会有无数的例子。我不打算为你编写整个代码,但是为了让你开始:
Controller
@quiz = Quiz.find_by(params[:id])
@questions = @quiz.questions.order('created_at desc').paginate(page: params[:page], per_page: 10)
respond_to do |format|
format.js
end
end
view
@questions.each do |question|
question.content
end
will_paginate @questions
<div id="more_questions_btn" style="display: none">
More
</div>
jquery
if ($('#more_questions).size > 0) {
$('.pagination').hide()
$('#more_questions_btn).show()
}
var url= $('.pagination .next_page a').attr('href')
('#more_questions_btn').on('click', function() {
$.getscript(url)
}
然后您需要使用js.erb文件附加下一页问题或替换当前的问题集。