我正在尝试使用will_paginate创建自定义页面列表。我成功创建了上一个和下一个按钮。我现在正试图在两者之间创建按钮,但却无法弄清楚如何。
以下是我的上一个和下一个按钮的代码:
<ul class="pagination-styler">
<% if @options.previous_page %>
<li>
<%= link_to params.merge(:page => @options.previous_page), style: "aria-label: previous;" do %>
<i class="ba ba-left"></i>
<% end %>
</li>
<% end %>
Page <%= @options.current_page %> of <%= @options.total_pages %>
<% if @options.next_page %>
<li>
<%= link_to params.merge(:page => @options.next_page ), "aria-label" => "next" do %>
<i class="ba ba-right"></i>
<% end %>
</li>
<% end %>
</ul>
这将呈现以下内容:
我想替换它所说的&#34;第3页第3页&#34;使用图标我看起来类似于上一个和下一个按钮,并具有特定的页码。我无法找到will_paginate提供的任何助手或方法,但我确信必须有办法。
有谁知道如何自定义实际的链接按钮?我需要将它们包裹在&#34; li&#34;并在链接内添加。
答案 0 :(得分:0)
我认为您可以通过覆盖tag
will_paginate
方法来实现此目的
您使用/app/helpers
中的.rb文件执行此操作我称之为pageoverride.rb
里面会看起来像这样
module Pageoverride
class PaginationListLinkRenderer < WillPaginate::ActionView::LinkRenderer
protected
def tag(name, value, attributes = {})
string_attributes = attributes.inject('') do |attrs, pair|
unless pair.last.nil?
attrs << %( #{pair.first}="#{CGI::escapeHTML(pair.last.to_s)}")
end
attrs
end
"<li><#{name}#{string_attributes}>#{value}</#{name}></li>"
end
end
end
我只在return语句周围添加了<li></li>
。然后,要使用此功能,您的分页调用应如下所示<%= will_paginate(@options, :renderer => Pageoverride::PaginationListLinkRenderer) %>
您应该能够在那里添加任何类<li>
。