gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:27:31 24 4
gpt4 key购买 nike

假设我们在 Controller 的某处有 @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)

关于ruby - 有没有办法从 ActiveRelation 对象中删除分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com