gpt4 book ai didi

ruby - 在 ActiveRecord 对象数组中查找值与从重复的数据库调用中查找值

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:50 25 4
gpt4 key购买 nike

如果我的联系人数组(模型)包含一个 ID 等于某个值的联系人,我只想返回 true。例如:

@contacts = Contact.all

@someval = "alskjdf"

find_val(@contacts, @someval)

def find_val(contacts, val)
@contact.each do |c|
if c.id == val
return true
end
end
return false
end

我必须在我的应用程序中重复执行此操作(对于此特定操作最多大约 100 次),以便从具有联系人列表的外部 API 中排除一些数据。这会不会太贵了?

我想我可以更快地做一些事情,类似于 ActiveRecord 在从数据库中拉下后在数组上查找,但无法弄清楚。这样调用 ActiveRecord 会不会太贵了?

Contacts.find_by_id(@someval)

上面的行必须被调用数百次...我认为遍历数组的开销会更低。谢谢!

最佳答案

最好的方法是在哈希中索引联系人,在从数据库中检索所有联系人后,使用联系人 ID 作为键:

contacts = Contact.all.inject({}) {|hash, contact| hash[contact.id] = contact; hash }

然后您可以轻松地以高效的方式与 contact[id] 取得联系。

关于ruby - 在 ActiveRecord 对象数组中查找值与从重复的数据库调用中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11254426/

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