gpt4 book ai didi

mysql - 在 Ruby on Rails 中查找或创建多条记录 - "find_or_create_all"

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

在 Rails 中执行“find_or_create_all”的高效而优雅的方法是什么?

给定:
names = ["Bob","John","Jack","Sid"],
用户表

需要:
用户 = ["#User:0x3ae3a00", "#User:0x3ae3938", "#User:0x3ae3898", "#User:0x3ae37f8"]

仅当用户不存在时才创建用户。

中间解决方案 - ["#User:0x3ae3a00", nil, nil, "#User:0x3ae37f8"] 也可以,例如,如果 Users 表中仅存在第一个和第四个条目。

一种方法是使用 find_all_by_name 并使用 HashMap 回名称数组中的条目,但我想知道 rails 中是否有一种优雅而有效的方法。

最佳答案

ar_extensions 提供了一个很好的解决方案。 https://github.com/zdennis/ar-extensions

假设所讨论的表有一个具有唯一数据库索引的列,如果唯一列上没有匹配项,则可以使用批量插入来插入,如果唯一列上有匹配项,则跳过或更新该行.

在 envycasts 加载大型数据集涵盖了这个案例 http://envycasts.com/products/advanced-activerecord

关于mysql - 在 Ruby on Rails 中查找或创建多条记录 - "find_or_create_all",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191234/

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