Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails will_paginate:不知道如何自定义内部项目符号_Ruby On Rails_Ruby On Rails 4_Pagination_Will Paginate - Fatal编程技术网

Ruby on rails will_paginate:不知道如何自定义内部项目符号

Ruby on rails will_paginate:不知道如何自定义内部项目符号,ruby-on-rails,ruby-on-rails-4,pagination,will-paginate,Ruby On Rails,Ruby On Rails 4,Pagination,Will Paginate,我正在尝试使用will_paginate创建自定义页面列表。我已经成功地创建了“上一个”和“下一个”按钮。我现在正在尝试在两者之间创建按钮,但在如何创建按钮方面遇到了困难 以下是我的“上一步”和“下一步”按钮代码: <ul class="pagination-styler"> <% if @options.previous_page %> <li> <%= link_to params.merge(:page =&g

我正在尝试使用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>
这将导致以下情况:

我想把第2页(共3页)上的图标替换为与“上一页”和“下一页”按钮相似的图标,并具有特定的页码。我找不到will_paginate提供的任何帮助或方法,但我相信一定有方法


有人知道如何定制实际的链接按钮吗?我需要将它们包装在li中并添加内部链接。

我认为您可以通过覆盖will\u paginate中的tag方法来实现这一点

您可以使用我称为mine pageoverride.rb的/app/helpers中的.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语句周围添加了一些内容。然后要使用它,您的分页调用应该类似于Pageoverride::PaginationListLinkRenderer%>您应该能够向其中添加任何类