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)