当我将will_paginate分页列表放入twitter bootstrap选项卡时。它只是在它们之间用分页链接列出它们。我正在使用will_paginate-bootstrap来设置分页的样式。
我已经尝试过,但没有制作标签:
取出分页样式
删除分页块
如果删除所有红宝石标签都有效,那么它们就会独立工作
<div class="tabbable">
<ul class="nav nav-tabs">
<li class="active"><a href="#A" data-toggle="tab">Newest</a></li>
<li><a href="#B" data-toggle="tab">Activity</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="A">
<%= render partial: "posts/post", collection: @posts, as: :post %>
<%= will_paginate @posts, renderer: BootstrapPagination::Rails %>
</div>
<div class="tab-pane" id="B">
<%= render partial: "posts/post", collection: @posts_by_activity, as: :post %>
<%= will_paginate @posts_by_activity, renderer: BootstrapPagination::Rails %>
</div>
</div>
</div>
答案 0 :(得分:1)
您使用的是哪个版本的Rails?我正在使用3.2.17并且我在Bootstrap 3选项卡和will_paginate中遇到了一些我自己的问题,但听起来并不一样。
这就是我正在做的事情:
<ul class="nav nav-tabs">
<li class="active"><a href="#announcements" data-toggle="tab"><i class="fa fa-exclamation-circle"></i> Announcements</a></li>
<li><a href="#activity" data-toggle="tab"><i class="fa fa-bar-chart-o"></i> Site activity</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="announcements">
<%= render 'announcements' %>
</div>
<div class="tab-pane fade" id="activity">
<%= render 'activity' %>
</div>
</div>
我有:
<%= will_paginate @announcements, renderer: BootstrapPagination::Rails %>
每个部分都有一点点。对我来说,部分是不同的信息,所以我在每个特征#index控制器动作中都有实例变量。您是否尝试过为这样的每个人制作一个单独的部分,以确定它是否有效?
分页导航按预期工作,但是,点击另一页内容会添加?page =#query string:
http://localhost:3000/features?page=2
然后这适用于两个标签。因此,如果我想查看“通知”选项卡的第2页,则单击“站点活动”选项卡也会直接转到第2页,因为查询字符串不会更改。烦。
答案 1 :(得分:1)
使用will_paginate gem的特定于Tab的页面是可能的。
请参阅http://blog.devinterface.com/2011/08/tips-multiple-pagination-with-will_paginate/
如果链接过时,请在此处复制相同的内容(通过一些简化):
在视图中:
<%= will_paginate @products, :param_name => 'products_page' %></p>
<%= will_paginate @services, :param_name => 'services_page' %><br />
在控制器中:
@products = current_company.products.paginate(:page => params[:products_page], :per_page => 10)<br />
@services = current_company.products.paginate(:page => params[:services_page], :per_page => 10)<br />
从上面的代码可以看出,关键在于发送一个不同的参数键值(双关语!)。这样,两个选项卡的页面信息都会附加到URL。