有没有办法从ActiveRelation对象中删除分页?

时间:2011-10-24 07:56:36

标签: ruby ruby-on-rails-3 kaminari

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

如何删除分页?

@posts.limit(false).offset(false)似乎可以做到这一点,但我认为应该采用其他方式,更高级的方式(类似@posts.without_pagination)。

1 个答案:

答案 0 :(得分:6)

由于kaminari提供page方法,我不确定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)