首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从rails 2.3中的activerecord查询对象中提取属性值

从rails 2.3中的activerecord查询对象中提取属性值
EN

Stack Overflow用户
提问于 2013-10-10 13:23:56
回答 2查看 243关注 0票数 1

在我的控制器中,我有一个@attach对象,当我检查它时,它的值为

代码语言:javascript
复制
[#<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。请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-10 13:30:09

dup是rails 4中的朋友。它将创建一个副本,但删除id值:

代码语言:javascript
复制
u = User.first
=> #<User id: 1, ...>
u.dup
=> #<User id: nil, ...>
u.dup.save
   (0.2ms)  begin transaction
...
票数 2
EN

Stack Overflow用户

发布于 2013-10-10 13:48:32

启动rails 3.2或3.1时,您希望使用dup。在此之前,您应该使用clone。这将为id字段提供新的值;您可能还需要注意created_at和updated_at字段发生的情况。

另一个需要注意的问题是,如果您有任何日期字段的验证说明它们必须在“今天的日期”之后,则它们可能在保存原始记录时有效,但在保存新记录时无效。如何解决此问题将取决于您的情况;您可能希望在克隆过程中完全禁用验证,或者调整新记录中的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19297019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档