假设@posts = Post.published.per(10).page(params[:page])
我们的控制器中有某个地方。稍后我们需要更新所有已发布的帖子 ( Post.published
)。
应该如何去除分页?
@posts.limit(false).offset(false)
似乎可以解决问题,但我认为应该有其他方式,一种更高级的方式(类似于@posts.without_pagination
)。
假设@posts = Post.published.per(10).page(params[:page])
我们的控制器中有某个地方。稍后我们需要更新所有已发布的帖子 ( Post.published
)。
应该如何去除分页?
@posts.limit(false).offset(false)
似乎可以解决问题,但我认为应该有其他方式,一种更高级的方式(类似于@posts.without_pagination
)。
由于该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)