ruby will_paginate(3.0.7)自定义渲染器。注释掉的代码是此版本gem的默认代码。使用`super`作为写的贝尔

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby will_paginate(3.0.7)自定义渲染器。注释掉的代码是此版本gem的默认代码。使用`super`作为写的贝尔相关的知识,希望对你有一定的参考价值。

# will_paginate(collection, renderer: PaginationCustomLinkRenderer)
class PaginationCustomLinkRenderer < WillPaginate::ActionView::LinkRenderer
  def prepare(collection, options, template)
    options[:params] ||= {}
    options[:params]['_'] = nil
    options[:page_links] ||= false
    options[:class] ||= "pagination"

    super(collection, options, template)
  end

  protected
  def html_container(html)
    # tag(:div, html, container_attributes)
    super(html)
  end

  def previous_or_next_page(page, text, classname)
    # if page
    #   link(text, page, :class => classname)
    # else
    #   tag(:span, text, :class => classname + ' disabled')
    # end
    super(page, text, classname)
  end

  def page_number(page)
    # unless page == current_page
    #   link(page, page, :rel => rel_value(page))
    # else
    #   tag(:em, page, :class => 'current')
    # end
    super(page)
  end

  def link(text, target, attributes = {})
    # if target.is_a? Fixnum
    #   attributes[:rel] = rel_value(target)
    #   target = url(target)
    # end
    # attributes[:href] = target
    # tag(:a, text, attributes)
    super(text, target, attributes)
  end

  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
    # "<#{name}#{string_attributes}>#{value}</#{name}>"
    super(name, value, attributes)
  end
end

以上是关于ruby will_paginate(3.0.7)自定义渲染器。注释掉的代码是此版本gem的默认代码。使用`super`作为写的贝尔的主要内容,如果未能解决你的问题,请参考以下文章

最新价格和 will_paginate

使用 will_paginate 对多个分页页面进行排序

在 Rails 中使用 will_paginate 和 AJAX 实时搜索和 jQuery

使用will_paginate和Rails时显示部分结果

在记录集合上使用 will_paginate 会更改分页结果计数?

使用 will_paginate gem 在 Rails 3.2.3 中调用 Ajax