我在这里遵循了AJAX Kaminari示例:https://github.com/amatsuda/kaminari_example/tree/ajax
我已经成功生成了部分和表格。但是,按分页中的页面不会更新我的表格。实际上,在按下时,查询就是完全相同的数据。
我发现了类似的问题,但解决方案仍然没有答案: kaminari ajax pagination not updating the paginate
我可以验证我正在使用#paginator元素。
我做的有些不同的事情不是创建一个单独的js.erb文件,而是添加了
<script>
$('#paginator').html('<%= escape_javascript(paginate(@pending_requests, :remote => true).to_s) %>');
$('#requests').html('<%= escape_javascript render (@pending_requests) %>');
</script>
在我的html.erb文件的末尾。
此外,在视图中,我使用ajax请求来选择表中的不同数据。例如,我有一个select_tag,在选择用户时,在视图中使用AJAX呈现相应的表。该表不是局部的,它在控制器中有自己的视图和方法。起初我怀疑是因为这个,表没有更新。但是,如果我去表格网址,我仍然无法使用分页!
编辑:我可以右键单击分页链接并将其打开到另一个选项卡。点击它们仍然没有做任何事情。
编辑:
我想补充说我正在使用Twitter Bootstrap。我注意到如果我在控制器中设置
format.html { render :layout => false }
然后我打开其中一个分页链接到另一个页面,我可以成功分页。我正在使用Kaminari bootstrap主题...
答案 0 :(得分:1)
我没有看到添加评论的地方,所以这不是一个真正的答案。
只用AJAX渲染表吗?是另一页的部分内容吗?或者是一个独立的观点?
我遇到了类似的问题(在你的Kaminari标签页面link之前的最后一篇文章中,我可以选择在展览视图中将表格渲染为部分页面,也可以作为单独的页面。我结束了,就像你添加了一个脚本标签一样,但你的文件就没有包含在文档就绪函数中,所以页面可能没有完全加载。试试。
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#paginator').html('<%= escape_javascript(paginate(@pending_requests, :remote => true).to_s) %>');
$('#requests').html('<%= escape_javascript render (@pending_requests) %>');
})
</script>