Rails Impressionist Gem - WillPaginate:: Коллекция не впечатлительна

Есть ли способ использовать импрессионистский драгоценный камень с волнистой страницей? Я пытаюсь использовать импрессионист will_paginate коллекция как это:

posts = Post.all.paginate(:page => params[:page]) 
impressionist(posts) 

Но возникает эта ошибка:

WillPaginate::Collection is not impressionable!

Есть ли способ использовать импрессионистский метод прямо на виду?

1 ответ

Коллекция, созданная will_paginate не впечатлительный означает, что именно вы читаете, это класс не имеет никаких вызовов is_impressionable, как ваша модель должна иметь. Если это не так, добавьте это так:

class Post < ActiveRecord::Base
    # ...other stuff
    is_impressionable
end

Затем, если вы не можете вызвать его в коллекции, почему бы не вызвать его в каждой записи? Попробуйте вот так:

posts = Post.all.paginate(:page => params[:page])
posts.each{|post| impressionist(post) }

Возможно, это не самое элегантное решение, но оно выполнит работу. Делая это по вашему мнению, я бы не советовал. Импрессионист создает запись в базе данных, которая замедляет рендеринг вашего представления. Будет лучше сделать это в слоях модели или контроллера.

Другие вопросы по тегам