如何强制kaminari显示页面的第一个链接在第一页

时间:2015-01-10 10:24:25

标签: ruby-on-rails kaminari

如何强制kaminari显示页面在第一页上的第一个链接

我的期望是甚至该页面在第一页上已经完成。

分页还应显示 previous_link first_page_link 。但仅显示链接文字,禁用链接功能

2 个答案:

答案 0 :(得分:2)

如果要显示链接“first_page”和“previous_page”(或“last_page”和“next_page”),即使是第一页,也应该在终端中运行此命令,您必须位于与项目相同的目录

rails g kaminari:views default

这将生成kaminari视图的文件,然后你应该转到“_paginator.html.erb”并删除“除非”

视图/雷/ _paginator.html.erb

<%= paginator.render do %>
  <nav class="pagination">
    <%= first_page_tag unless current_page.first? %>
    <%= prev_page_tag unless current_page.first? %>
    <% each_page do |page| %>
      <% if page.left_outer? || page.right_outer? || page.inside_window? %>
        <%= page_tag page %>
      <% elsif !page.was_truncated? %>
        <%= gap_tag %>
      <% end %>
    <% end %>
    <%= next_page_tag unless current_page.last? %>
    <%= last_page_tag unless current_page.last? %>
  </nav>
<% end %>

因此,您需要更改该文件并将其保留为

视图/雷/ _paginator.html.erb

<%= paginator.render do %>
  <nav class="pagination">
    <%= first_page_tag %>
    <%= prev_page_tag %>
    <% each_page do |page| %>
      <% if page.left_outer? || page.right_outer? || page.inside_window? %>
        <%= page_tag page %>
      <% elsif !page.was_truncated? %>
        <%= gap_tag %>
      <% end %>
    <% end %>
    <%= next_page_tag %>
    <%= last_page_tag %>
  </nav>
<% end %>

希望它有所帮助:D

答案 1 :(得分:0)

kaminari使用kaminari/app/views/kaminari/_first_page.html.erb

中的以下代码设置首页链接
<span class="first">
  <%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url, :remote => remote %>
</span>

仅当当前页面不是第一页时才添加链接。

您可以轻松修改此代码by customizing the kaminari views

运行rails g kaminari:views default;它创建了kaminari使用的所有视图的本地副本。

因此,您会在应用中看到一个app/views/kaminari/_first_page.html.erb文件,其代码与上述相同。改变它以满足您的需求。

示例,要在第一页上显示第一页的链接文本,请按如下所示更改逻辑:

<span class="first">
  <% if current_page.first? %>
    <%= t('views.pagination.first' %>
  <% else %>
    <%= link_to t('views.pagination.first').html_safe, url, :remote => remote %>
  <% end %>
</span>

同样适用于上一个链接; app/views/kaminari/_prev_page.html.erb中的逻辑可以更改为根据需要显示。