gpt4 book ai didi

ruby-on-rails - rails : Retrieve the latest record from multiple associated models

转载 作者:行者123 更新时间:2023-11-29 13:46:49 25 4
gpt4 key购买 nike

我正在寻找一种最佳且性能更好的解决方案来获取多个关联中的最新记录,

class ModelA < ActiveRecord::Base`
has_many books
has_many tables
has_many chairs
end

到目前为止,我有以下内容,以实现对这些关联中最后一个的检索。

[books.last, tables.last, chairs.last]
.compact
.sort_by(&:created_at)
.last

这会产生多个查询,进而减慢通过 Controller 的响应速度。是否有更好的解决方案来实现同样的目标?

提前致谢。

最佳答案

SQL 中的 UNION 可以帮助你。 Union 将包含您的所有查询,您将能够轻松地对其进行排序。

SELECT id, 'Book' AS type, created_at, other_fields FROM books
UNION
SELECT id, 'Table' AS type, created_at, other_fields FROM tables
UNION
SELECT id, 'Chair' AS type, created_at, other_fields FROM chairs
ORDER BY created_at;

请注意,您可以通过不同表中的公共(public)字段进行合并。所以你不能选择一些在其他字段中不存在的字段。字段 type 是区分实体所必需的。

关于ruby-on-rails - rails : Retrieve the latest record from multiple associated models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019303/

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