使用will_paginate gem在最后一页显示消息

时间:2014-01-14 04:29:47

标签: ruby-on-rails ruby pagination will-paginate

在一个简单的CRUD rails应用程序中,我正在使用will_paginate gem。我决定删除页码以及previous_link按钮。我只渲染next_link。

<%= will_paginate @posts, :page_links => false, :next_label => 'more', :previous_label => '' %>

如何在最后一页上显示自定义消息。比如“这就是结束。”

我想我可能必须覆盖will_paginate的一些方法并在视图中添加某种布尔值?

3 个答案:

答案 0 :(得分:3)

移至app / assets / Stylesheets / application.css在您的文件中包含以下css

.apple_pagination {
  background: #f1f1f1;
  border: 1px solid #e5e5e5;
  text-align: center;
  padding: 1em;
  cursor: default; }
  .apple_pagination a, .apple_pagination span {
    padding: 0.2em 0.3em; }
  .apple_pagination .disabled {
    color: #aaaaaa; }
  .apple_pagination .current {
    font-style: normal;
    font-weight: bold;
    background-color: #bebebe;
    display: inline-block;
    width: 1.4em;
    height: 1.4em;
    line-height: 1.5;
    -moz-border-radius: 1em;
    -webkit-border-radius: 1em;
    border-radius: 1em;
    text-shadow: rgba(255, 255, 255, 0.8) 1px 1px 1px; }
  .apple_pagination a {
    text-decoration: none;
    color: black; }
    .apple_pagination a:hover, .apple_pagination a:focus {
      text-decoration: underline; }

转到app / views / index.html.erb

<%= will_paginate @posts ,:class => "apple_pagination"%>

您将找到最后一页的最后一页。

同样在posts_controller.rb

@posts = Post.order(&#34; published_at desc&#34;)。page(params [:page])。per_page(20)

答案 1 :(得分:2)

实现此目的的一种方法是在视图上添加一些条件:

<% prev = (@posts.total_pages == @posts.current_page) ? '' : 'prev' %>
<%= will_paginate @posts, :page_links => false, :next_label => 'more', :previous_label => prev %>

答案 2 :(得分:1)