gpt4 book ai didi

ruby-on-rails - Rails & Papertrail - 在查询中包含以前的版本

转载 作者:太空宇宙 更新时间:2023-11-03 16:31:42 35 4
gpt4 key购买 nike

我正在创建一个应用程序,在创建和更新文章时需要管理员批准。我使用纸质记录来完成这项工作,存储对文章的每次更新。

更新文章时,“已发布”字段设置为 false。由于我想显示文章的最新批准/发布版本,我需要一种范围来检查文章的当前版本是否获得批准,如果没有,它会搜索以前的版本,直到找到批准/发布了一个。

def self.published(query={})
where(query).map do |article|
article.published? ? article : article.last_published_version
end.compact! || []
end

def published?()
published
end

def last_published_version()
return self if published?
published_versions = versions.select{ |version| version.reify.try(:published?) }
published_versions.present? ? published_versions.last.reify : nil
end

现在,因为我在这里使用 map,所以我的查询返回一个数组而不是 ActiveRecord 关系。我想对已发表的文章进行附加查询,所以这是个问题。

例如,我想这样做:Article.published.where(...).order_by(...)

有什么想法可以实现吗?

最佳答案

我建议建立直接关联并将两者连接 在一起,这样您就可以针对版本控制表添加搜索词。我还会使用自定义版本类(并不是说您不能使用默认版本表执行此操作)并设置您经常访问(或需要访问以进行搜索)的元数据,因为版本是序列化的,通过他们 选项。这样可能会更快,并且搜索/访问数据会更方便。

关于ruby-on-rails - Rails & Papertrail - 在查询中包含以前的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793142/

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