gpt4 book ai didi

ruby-on-rails - 获取属性值数组,以及来自连接的属性

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

我相信我已经接近了。我当前的查询是这个

items = Item.select("items.icon, items.name, item_types.name AS type, items.level, items.rarity, items.vendor_value")
.joins(:item_type)
.where("item_types.name = '#{params[:item_type]}'")

这为我提供了一组 Item 对象,这些对象至少使用 item_type.name 响应 :type

我正在寻找的是一个看起来像这样的数组:

[icon, name, item_type.name, level, rarity, vendor_value]

我已经让它工作得相当轻松,但对我来说重要的是通过 sql 一次性完成,而不是事后创建 map ,因为有时我需要响应 40k+ 项目和需要它尽可能快。

不确定如何在不执行映射的情况下从上面转到属性数组。

感谢您的帮助!

最佳答案

pluck 方法正是您想要的。在您的情况下,它看起来像这样:

items = Item.joins(:item_type)
.where("item_types.name = ?", params[:item_type])
.pluck("items.icon", "items.name", "item_types.name AS type",
"items.level", "items.rarity", "items.vendor_value")

我还更改了 where 调用以使用参数化而不是字符串插值——不推荐插值,尤其是当您从用户那里获取值时。

进一步阅读:

Official documentation for pluck

An in-depth explanation of how to use pluck

关于ruby-on-rails - 获取属性值数组,以及来自连接的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678846/

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