gpt4 book ai didi

ruby-on-rails - 制作记录副本并保存到数据库,但具有唯一 ID

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:44 24 4
gpt4 key购买 nike

我正在尝试创建一个与现有记录完全相同的新记录,但我当然需要新记录具有唯一的 id。含义:我不想将 id 从现有记录复制到新记录。

当前代码

@blog = Blog.new(title: "some title")
@blog.save

@copy_of_existing_blog = Blog.new(@blog.attributes)
@copy_of_existing_blog.save

它返回这个错误:

ActiveRecord::RecordNotUnique

我明白为什么它会出错。它正在尝试保存与现有记录具有重复 id 的记录。我只是不知道如何制作记录的精确副本,减去 id,并将其保存到数据库中。

最佳答案

您需要从属性散列中过滤掉 ID。 ActiveSupport 有一个方便的 Hash#except这样做的方法:

Blog.new(@blog.attributes.except("id"))

此外,您可能还想过滤掉时间戳。

关于ruby-on-rails - 制作记录副本并保存到数据库,但具有唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666985/

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