gpt4 book ai didi

ruby-on-rails - 有没有办法使用 Activerecord 连接两个字段?不使用虚拟属性

转载 作者:行者123 更新时间:2023-12-03 20:46:12 24 4
gpt4 key购买 nike

我想将两个字段连接在一起,最好在两者之间留一个空格。我知道这可以在模型级别完成,但我无法预测我将混合哪些字段和表格,因此我无法为此创建虚拟属性。

以下是我正在尝试做的一个过于简单化的示例。

表格:

# Product (id: integer, name: string, variety: string)
# Location (id: integer, city: string)

这会给我位置关系以及产品种类:

p=Product.joins(:location).group(:location_id, :variety).pluck(:city, :variety)

现在我需要将地点名称和品种名称连接在一起;那将是来自 Location 的 city 和来自 Product 的 variety

这只是一个例子,但还有更多我无法预测的组合。我宁愿避免为此创建虚拟属性,因为为每个可能的组合添加一个属性会非常复杂,并且使用受影响的模型创建自己的函数对于这么简单的事情来说有点太多了。

最佳答案

我知道这是一个老问题,但它出现在谷歌搜索中,我找到了一个更好的答案。

@philip-hallstrom 的回答是可行的,但它会在内存中执行连接。在数据库级别执行该连接会更有效,如下所示:

Product
.joins(:location)
.group(:location_id, :variety)
.pluck("CONCAT_WS(' ', locations.city, products.variety)")

关于ruby-on-rails - 有没有办法使用 Activerecord 连接两个字段?不使用虚拟属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30248078/

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