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

Ruby 有没有办法从ActiveRelation对象中删除分页?,ruby,ruby-on-rails-3,kaminari,Ruby,Ruby On Rails 3,Kaminari,假设我们的控制器中有@posts=Post.published.per(10).page(params[:page])。稍后,我们需要更新所有已发布的帖子(Post.published) 如何删除分页? @posts.limit(false).offset(false)似乎可以解决问题,但我认为应该有其他方法,一种更高级的方法(比如@posts.without _pagination)。由于页面方法是由kaminari提供的,我不确定kaminari是否也提供了类似于而不分页的方法 但如果您愿意

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

如何删除分页?


@posts.limit(false).offset(false)
似乎可以解决问题,但我认为应该有其他方法,一种更高级的方法(比如
@posts.without _pagination
)。

由于
页面
方法是由kaminari提供的,我不确定kaminari是否也提供了类似于
而不分页
的方法

但如果您愿意,您可以随时这样做:

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

Kaminari现在提供了取消作用域分页的方法:。我不确定它当前的行为是否有任何不同,但使用它可能比直接重写AR选项更能证明未来的情况。如果在数组上使用WillPaginate,这将不起作用。最好有一个同时适用于关系和数组的解决方案
@posts = Post.publised.per(10).page(params[:page])
@posts = @posts.except(:limit, :offset)