轨道是否有办法从模型实例中插入记录?像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. 插入记录
- 3. 尝试插入从对象
- 4. 记录MSSQL插入
- 5. has_many记录插入
- 6. 标记记录插入
- 7. 如何自动对新记录插入
- 8. 在同一个对象中插入多条记录Context
- 9. 插入多条记录到MySQL从PHP
- 10. Haskell Mongodb从文件中插入记录
- 11. TSQL从XML字符串插入记录
- 12. 从CTE插入记录到表
- 13. 插入多个记录从Android到PHP?
- 14. 记录PHP对象
- 15. 插入新记录时,从一个表插入另一个表
- 16. 从JSON对象删除记录Javascript
- 17. 从QueryBuilder中删除对象的记录
- 18. 如何从对象中获取记录
- 19. 有效记录:从父对象创建记录
- 20. Web API插入记录
- 21. NHibernate不会插入记录
- 22. 插入记录的sql
- 23. SQL不插入记录
- 24. MySQL - 插入500K记录
- 25. 快速插入记录
- 26. SqlDataAdapter.Update没有插入记录
- 27. PDO - 记录插入问题?
- 28. MERGE插入NULL记录也
- 29. 记录插入一个
- 30. 多记录插入 - Classsic ASP
可能与http://stackoverflow.com/questions/60033/what-is-the-easiest-way-to-duplicate-an-activerecord复制 - 记录 – Baldrick 2012-01-31 16:22:32