我当前正在使用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/

10-09 15:14