轨道是否有办法从模型实例中插入记录?像User.create(user)
?从对象插入记录
从对象插入记录
回答
假设user
是User
的实例,您只需使用user.save
即可。 AR知道是否插入或更新。
UPDATE(见注释)
这似乎是一个创纪录的问题的克隆,所以答案是使用dup
方法来创建对象的浅克隆。
这不符合我的预期。出于测试目的,我尝试了以下内容:u = User.find(1); u.id = nil; u.save并且它试图更新updated_at,其中users.id是NULL,这是有道理的。我没有错吗?我从User中选择这个对象,所以它会一直尝试更新它,当我想将它作为新记录插入时。 – 2012-01-31 16:14:09
你为什么把id设置为零?您通常会使用'user = User.new()'创建一个新实例,然后调用'user.save'。通过执行'find',您可以选择数据库中的现有记录,然后将id设置为nil,调用'save'将尝试保存'id' = nil的位置。哪个会炸毁。你是否想从数据库中克隆一条记录并将其保存为新记录? – Bangline 2012-01-31 16:21:15
应该说如果你想克隆使用'dup'来创建re4cord的一个副本而不保存它,(Rails 3+) – Bangline 2012-01-31 16:23:28
你可能想尝试FactoryGirl创建对象:https://github.com/thoughtbot/factory_girl
- 1. 通过对象插入多条记录
- 2. 从记录中插入html
- 3. 从表中插入记录
- 4. 插入记录
- 5. 插入记录
- 6. 插入记录
- 7. 尝试插入从对象
- 8. 记录MSSQL插入
- 9. has_many记录插入
- 10. 标记记录插入
- 11. 如何自动对新记录插入
- 12. 使用MVC插入多对多记录
- 13. 在Symfony中插入记录时返回Doctrine_Null对象
- 14. 重新使用sqlalchemy ORM对象插入多条记录
- 15. 使用核心数据更新对象插入新记录
- 16. 在同一个对象中插入多条记录Context
- 17. 插入复选标记到PHPExcel对象
- 18. SQL插入记录对于结果集的每个记录
- 19. 插入多个记录从Android到PHP?
- 20. 从另一个查询插入记录
- 21. 插入多条记录从DataGridView
- 22. 插入多条记录到MySQL从PHP
- 23. 从CTE插入记录到表
- 24. Haskell Mongodb从文件中插入记录
- 25. TSQL从XML字符串插入记录
- 26. 插入对象
- 27. 记录PHP对象
- 28. 插入新记录时,从一个表插入另一个表
- 29. 从JSON对象删除记录Javascript
- 30. 从ABPerson对象检索记录
可能与http://stackoverflow.com/questions/60033/what-is-the-easiest-way-to-duplicate-an-activerecord复制 - 记录 – Baldrick 2012-01-31 16:22:32