Rails 4-使用Kaminari使用Javascript重定向到下一页
我目前正在使用Kaminari进行分页,并且我知道Rails 4-使用Kaminari使用Javascript重定向到下一页,javascript,ruby-on-rails,kaminari,Javascript,Ruby On Rails,Kaminari,我目前正在使用Kaminari进行分页,并且我知道link_to_next_page方法。但是,在处理和提交表单后,我目前正在分页范围内寻找“链接到下一页” 换言之: 用户单击“提交”按钮 表单通过:remote=>true提交 Javascript以编程方式将用户引导到下一页 有点像: create.js.erb <% if @result %> <script type="text/javascript"> window.location.hr
link_to_next_page
方法。但是,在处理和提交表单后,我目前正在分页范围内寻找“链接到下一页”
换言之:
:remote=>true提交
<% if @result %>
<script type="text/javascript">
window.location.href="<%= @user.next_page %>
</script>
<% end %>
window.location.href=”
我是否可以生成/确定下一页是什么,然后通过javascript重定向用户
谢谢
最终解决方案:
根据Kieran在下面的帮助,以下是我最终所做的:
<% if @result %>
<% unless @users.last_page? %>
window.location.href="?page=<%=@users.current_page+1 %>"
<% else %>
window.location.href="completed"
<% end %>
window.location.href=“?页面=”
window.location.href=“已完成”
这对我来说似乎很好。您的问题是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 %>
window.location.href=“(@users.current_page+1))%>”
感谢@Kieran.window.location.href=”“
返回一个错误的参数数(1代表2..3)
错误。当我将其更改为:window.location.href=“”
,它只刷新当前页面。控制器中的@users用于def create
的是什么?它是:@users=users。where(“组id=?“,@group_id).page(参数[:page])。per(1)
另外,链接到下一页
基本上只生成HTML,就像链接到标签一样:
。我不确定如何将它放在窗口中。location.href=
会使它工作。我无法在本地安装它,但我已经更新了我的答案。你应该在create.js和tr中放置binding.pryy并以某种方式从users对象获取下一页。