我当前正在使用Kaminari进行分页,并且我知道link_to_next_page
方法。但是,我目前正在寻求在处理和提交表单之后在分页范围内“链接到下一页”。
换一种说法:
用户单击“提交”按钮
表单通过:remote => true
提交
Javascript以编程方式将用户定向到下一页。
有点像:
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=<%[email protected]_page+1 %>"
<% else %>
window.location.href="completed"
<% end %>
这似乎对我来说很好。
最佳答案
您遇到的问题是Kaminari需要“范围”才能正确确定当前页面的下一页:
https://github.com/amatsuda/kaminari/blob/bc51fd08f9e67b8338b421f6827d7d8e54c82deb/lib/kaminari/helpers/action_view_extension.rb#L64
由于您要提交到javascript,因此需要为此方法提供此范围以使其起作用。在create方法的控制器中,您将需要具有相同的代码来查询要在其上进行分页的对象,然后让Kaminari进行其余操作。
@users = User.order(:name).page params[:page]
您将需要确保该表单还发送
params[:page]
然后,您可以执行以下操作:
<% if @result && [email protected]_page? %>
<script type="text/javascript">
window.location.href="<%= params.merge(param_name => (@users.current_page + 1)) %>"
</script>
<% end %>
关于javascript - Rails 4-使用Kaminari使用Java重定向到下一页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21418475/