每个选项卡中带有will_paginate分页的bootstrap导航选项卡

时间:2013-07-23 22:55:25

标签: twitter-bootstrap ruby-on-rails-3.2 will-paginate

当我将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>

2 个答案:

答案 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。