Rails will_paginate 对同一页面上的两个对象不起作用

Rails will_paginate on two objects on the same page does not work

之前看到过类似的问题,但是看不懂,也不能求助,信誉度低,无法评论。

所以,我要问一个新问题。我正在为同一页面上的两个对象使用 will_paginate 插件,它们正在工作但同时移动。例如,如果我在第一次点击第 2 页,即使在第二次分页时,第 2 页也会发生变化。

这是我在控制器中的代码:

    @tasks = @student.tasks.paginate(page: params[:page], :per_page => 2)
    @plans = @student.plans.paginate(page: params[:page], :per_page => 2)         

这是我在视图中的代码:

    <%= will_paginate @tasks %>
    <%= will_paginate @plans %>

我怎样才能让这个单独工作?

您的控制器对每个模型使用相同的参数 :page。然后您的视图使用该参数为视图中的两个模型设置页面。您可以定义不同的参数以用于每个模型。即

@tasks = @student.tasks.paginate(page: params[:tasks_page], :per_page => 2)
@plans = @student.plans.paginate(page: params[:plans_page], :per_page => 2)         

<%= will_paginate @tasks, :param_name => 'tasks_page'%>
<%= will_paginate @plans, :param_name => 'plans_page'%>