在我的控制器中,我有一个@attach对象,当我检查它时,它的值为
[#<MessageAddlAttachment id: 80, reminder_id: 112, msg_attachment_file_name: "24.png", msg_attachment_content_type: "image/png", msg_attachment_file_size: 272368, created_at: "2013-10-10 12:04:37", updated_at: "2013-10-10 12:04:37">, #<MessageAddlAttachment id: 81, reminder_id: 112, msg_attachment_file_name: "37.png", msg_attachment_content_type: "image/png", msg_attachment_file_size: 333986, created_at: "2013-10-10 12:04:37", updated_at: "2013-10-10 12:04:37">]因此,在进行了一些操作之后,我需要在这个MessageAddlAttachment表中创建一个具有不同ids的条目。我怎样才能做到这一点。我试过了dup,但是它有相同的ids。请帮帮忙
发布于 2013-10-10 13:30:09
dup是rails 4中的朋友。它将创建一个副本,但删除id值:
u = User.first
=> #<User id: 1, ...>
u.dup
=> #<User id: nil, ...>
u.dup.save
(0.2ms) begin transaction
...发布于 2013-10-10 13:48:32
启动rails 3.2或3.1时,您希望使用dup。在此之前,您应该使用clone。这将为id字段提供新的值;您可能还需要注意created_at和updated_at字段发生的情况。
另一个需要注意的问题是,如果您有任何日期字段的验证说明它们必须在“今天的日期”之后,则它们可能在保存原始记录时有效,但在保存新记录时无效。如何解决此问题将取决于您的情况;您可能希望在克隆过程中完全禁用验证,或者调整新记录中的值。
https://stackoverflow.com/questions/19297019
复制相似问题