如何在rails中使用带模型缓存的will_paginate?

时间:2015-01-07 23:54:12

标签: ruby-on-rails caching

我的模型中有一个范围(scope :short_listed, -> ....)。要列出索引页面上的所有项目,我使用以下代码:

@posts = Post.cached_short_listed.paginate(:page => params[:page])

post.rb

  def self.cached_short_listed
    Rails.cache.fetch([name, "short_listed"], expires_in: 5.minutes) do
      short_listed.to_a
    end
  end

我有这个错误

undefined method `paginate' for #<Array:

如果我删除.paginate(:page => params[:page])<%= will_paginate....%>,一切正常。

如何使will_paginate与模型缓存一起使用。

1 个答案:

答案 0 :(得分:3)

默认情况下,WillPaginate不包含Array分页,但您可以将其包括在内......

require 'will_paginate/array'

...在初始化程序中。数组上的分页应该像ActiveRecord :: Relation上的分页一样工作。