1

В rails3 почти все изменения интерфейса запросов будут lazyloading сейчас, но «will_paginate» сразу попадет в базу данных после использования метода «paginate». Как я могу сделать это lazyload records?Как сделать 'will_paginate' lazyload в rails 3?

ответ

0

Я сделал это, переписав много кода в will_paginate. Это очень тяжело для will_paginate для ленивой загрузки, потому что will_paginate имеет основной класс «WillPaginate :: Collection», который является подклассом «Array». (Я не как этот класс)
Все результаты, сгенерированные методом «paginate», возвращают экземпляр Collection, поэтому он заставит объект «ActiveRecord :: Relation» в «Array», который заставит Relation мгновенно попасть в базу данных.

+0

не могли бы вы поделиться с вами кодом/вилкой воли? У меня такая же проблема, я не могу воспользоваться lazyload для кеша из-за will_paginate. – Tiago

+0

Пожалуйста, дайте мне ваш адрес электронной почты (мой: [email protected]), я пошлю его вам. – Croplio

+0

Привет, я бы тоже ... это на github? – Alex

0

Я создал очень легкий плагин, который использует лимит (per_page) .offset (page * per_page) для реализации разбивки на страницы под Rails 3. Поэтому он обеспечивает ленивую загрузку, что отлично подходит для кэширования фрагментов. Интерфейс такой же, как will_paginate (@ posts.recent.paginate: page => params [: page]). Слишком много помощников по просмотру пока нет, но я уверен, что вы сочтете это полезным: http://github.com/josei/simple_paginate

Смежные вопросы