Ruby on Rails:在将下拉过滤器与will_paginate一起使用之前,显示默认结果

时间:2018-12-19 18:46:43

标签: ruby-on-rails ruby ruby-on-rails-5

我可以使用下拉菜单将结果显示为10、15或20。问题是应用加载时会显示所有结果。在使用下拉过滤器显示更多结果之前,我默认只显示10个结果。

有人可以帮忙吗?

谢谢!

这是我的观点:

<%= select_tag :per_page, options_for_select([10,15,20], @per_page), :onchange => "if(this.value){window.location='?per_page='+this.value;}" %>

这是我的控制器:

@per_page = params[:per_page] || Post.per_page
    @posts= Post.all.paginate(:per_page => @per_page, :page => params[:page])

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

@per_page = params[:per_page] || Post.per_page
@posts= Post.paginate(per_page: @per_page, page: params[:page])

请注意,我称其为不带Post类本身而不是基于Post.all的结果的分页。

我还删除了最后|| 10部分。我认为您在那里不需要它,因为您已经在Post模型上设置了此值。