我目前正在使用Kaminari进行分页,我知道link_to_next_page
方法。但是,我目前希望在处理并提交表单后,在分页范围中“链接到下一页”。
换句话说:
:remote => true
有点像: 的 create.js.erb
<% if @result %>
<script type="text/javascript">
window.location.href="<%= @user.next_page %>
</script>
<% end %>
我是否可以生成/确定下一页是什么,然后通过javascript重定向用户?
谢谢!
最终解决方案: 基于Kieran在下面的帮助,这是我最终做的事情:
<% if @result %>
<% unless @users.last_page? %>
window.location.href="?page=<%=@users.current_page+1 %>"
<% else %>
window.location.href="completed"
<% end %>
这对我来说似乎没问题。
答案 0 :(得分:1)
您遇到的问题是Kaminari需要“范围”才能正确确定当前页面的下一页:
由于您要提交javascript,因此您需要将此范围提供给此方法以使其正常工作。在create方法的控制器中,您需要使用相同的代码来查询要分页的对象,然后让Kaminari完成剩下的工作。
@users = User.order(:name).page params[:page]
您需要确保表单也沿params[:page]
然后你可以这样做:
<% if @result && !@users.last_page? %>
<script type="text/javascript">
window.location.href="<%= params.merge(param_name => (@users.current_page + 1)) %>"
</script>
<% end %>