6

假设@posts = Post.published.per(10).page(params[:page])我们的控制器中有某个地方。稍后我们需要更新所有已发布的帖子 ( Post.published)。

应该如何去除分页?

@posts.limit(false).offset(false)似乎可以解决问题,但我认为应该有其他方式,一种更高级的方式(类似于@posts.without_pagination)。

4

1 回答 1

9

由于该page方法由 kaminari 提供,我不确定 kaminari 是否也提供类似without_pagination.

但如果你愿意,你总是可以这样做:

class Post < ActiveRecord::Base
  def self.without_pagination
    self.limit(false).offset(false)
  end
end

或者您可以将方法提取到模块中并将模块包含到 ActiveRecord::Base 中,以便每个模型都有该方法。

已编辑

感谢 tfwright 指出。可以使用.except(:limit, :offset)哪个对后来者来说应该更好。

@posts = Post.publised.per(10).page(params[:page])
@posts = @posts.except(:limit, :offset)
于 2011-10-24T08:01:42.857 回答