gpt4 book ai didi

database - 带新 ID 的 Datamapper 克隆记录

转载 作者:太空狗 更新时间:2023-10-30 01:54:48 26 4
gpt4 key购买 nike

class Item
include DataMapper::Resource

property :id, Serial
property :title, String
end

item = Item.new(:title => 'Title 1') # :id => 1
item.save
item_clone = Item.first(:id => 1).clone
item_clone.save

# => <Item @id=1 @title="Title 1" ...

这确实“克隆”了所描述的对象,但是如何做到这一点以便在保存记录后应用不同的 ID,例如

# => <Item @id=2 @title="Title 1" ...

最佳答案

clone 将为您提供一个对象副本,这并不是您真正想要的 - 您只想复制数据库中的记录,对吗?我过去使用 DM 的方式是这样的:

new_attributes = item.attributes
new_attributes.delete(:id)
Item.create(new_attributes)

你也可以一行完成:

Item.create(item.attributes.merge(:id => nil))

关于database - 带新 ID 的 Datamapper 克隆记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2669582/

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