Draper with Bootstrap Pagination - неопределенный метод total_pages

Я использую Draper, чтобы украсить свои виды и убрать из них некоторую логику, но я борюсь с этим вопросом - как настроить Draper с Bootstrap Pagination (will_paginate)?

По умолчанию у меня есть это:

delegate_all

И из документации Draper я попытался добавить это:

delegate :current_page, :per_page, :offset, :total_entries, :total_pages

Но он по-прежнему возвращает ошибку при вызове нумерации страниц в представлении. Мой контроллер определяет оформление и нумерацию страниц следующим образом:

@matches = Match.all.paginate(:per_page => 10, :page => params[:page]).decorate

И мой взгляд:

<%= will_paginate @matches, renderer: BootstrapPagination::Rails %>

Обновить:

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

1 ответ

Решение

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
Другие вопросы по тегам