给定页面在第一页上,如何强制 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函数
kaminari
在kaminari/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
如果页面在第一页,如何强制 kaminari 显示第一个 link
我的期望是甚至该页面已经在第一页。
分页也要显示previous_link,first_page_link
,但只显示link文本,禁用link函数
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>
仅当当前页面不是第一页时才会添加 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