给定页面在第一页上,如何强制 kaminari 显示第一个 link

How to force kaminari show the first link given the page is on the first page

如果页面在第一页,如何强制 kaminari 显示第一个 link

我的期望是甚至该页面已经在第一页

分页也要显示previous_link,first_page_link,但只显示link文本,禁用link函数

kaminarikaminari/app/views/kaminari/_first_page.html.erb

中设置第一页link,代码如下
<span class="first">
  <%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url, :remote => remote %>
</span>

仅当当前页面不是第一页时才会添加 link。

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

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

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

例如,要使其在第一页时显示第一页的link文本,更改逻辑如下:

<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>

同样适用于之前的link;可以更改 app/views/kaminari/_prev_page.html.erb 中的逻辑以使其根据需要显示。

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

rails g kaminari:views default

这将为 kaminari 视图生成文件,然后您应该转到“_paginator.html.erb”并删除 "unless"

views/kaminari/_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 %>

因此您需要更改该文件并将其保持原样

views/kaminari/_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