Rails Impressionist Gem - WillPaginate :: Collection不易受影响

时间:2018-04-03 20:58:08

标签: ruby-on-rails ruby rubygems impressionist

有任何方法可以使用印象派宝石与意志分页?我尝试将印象派用于will_paginate这样的集合:

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

但它引发了这个错误:

WillPaginate::Collection is not impressionable!

有什么方法可以直接在视图上使用印象派方法吗?

1 个答案:

答案 0 :(得分:2)

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) }

也许这不是最优雅的解决方案,但它会完成工作。在您看来这样做时,我不会建议。 Impressionist会创建一个数据库记录,这会减慢视图渲染速度。最好在模型或控制器层中进行。