带有Bootstrap分页的Draper - 未定义的方法'total_pages'

Zuz*_*aSt 2 ruby-on-rails decorator will-paginate twitter-bootstrap draper

我正在使用Draper来装饰我的视图并从中移出一些逻辑但是我正在努力解决这个问题 - 如何使用Bootstrap Pagination设置Draper(will_paginate)?

默认我有这个:

delegate_all
Run Code Online (Sandbox Code Playgroud)

从Draper文档我尝试添加这个:

delegate :current_page, :per_page, :offset, :total_entries, :total_pages
Run Code Online (Sandbox Code Playgroud)

但是在视图中调用分页时仍然会返回错误.我的控制器定义装饰和分页,如下所示:

@matches = Match.all.paginate(:per_page => 10, :page => params[:page]).decorate
Run Code Online (Sandbox Code Playgroud)

我的观点是:

<%= will_paginate @matches, renderer: BootstrapPagination::Rails %>
Run Code Online (Sandbox Code Playgroud)

更新:

class ApplicationDecorator < Draper::Decorator
  def self.collection_decorator_class
    PaginatingDecorator
  end
end


class PaginatingDecorator < Draper::Decorator
  # support for will_paginate
  delegate :current_page, :total_entries, :total_pages, :per_page, :offset
end


class PlayerDecorator < ApplicationDecorator
  delegate_all
  decorates_association :matches


class MatchDecorator < ApplicationDecorator
  delegate_all
  decorates_association :players
Run Code Online (Sandbox Code Playgroud)

Par*_*gra 5

https://github.com/drapergem/draper/issues/429

# app/decorators/application_decorator.rb
class ApplicationDecorator < Draper::Decorator
  def self.collection_decorator_class
    PaginatingDecorator
  end
end

# app/decorators/paginating_decorator.rb
class PaginatingDecorator < Draper::CollectionDecorator
  # support for will_paginate
  delegate :current_page, :total_entries, :total_pages, :per_page, :offset
end

# app/decorators/whatever_decorator.rb
class WhateverDecorator < ApplicationDecorator
end
Run Code Online (Sandbox Code Playgroud)