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

rod*_*rod 9 ruby rubygems ruby-on-rails impressionist

有没有办法使用印象派宝石与意志分页?我尝试将印象派用于这样的will_paginate集合:

posts = Post.all.paginate(:page => params[:page]) 
impressionist(posts) 
Run Code Online (Sandbox Code Playgroud)

但它引发了这个错误:

WillPaginate::Collection is not impressionable!
Run Code Online (Sandbox Code Playgroud)

有没有办法直接在视图上使用印象派方法?

Erv*_*ouS 2

生成的集合will_paginate不可印象深刻意味着您正在阅读,它的类没有对 的任何调用is_impressionable,正如您的模型应该有的那样。如果没有,请像这样添加:

class Post < ActiveRecord::Base
    # ...other stuff
    is_impressionable
end
Run Code Online (Sandbox Code Playgroud)

那么,如果不能在集合中调用它,为什么不在每条记录中调用它呢?尝试这样:

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

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