Nei*_*eil 1 ruby activerecord ruby-on-rails
我正在尝试创建一个新记录,它是现有记录的精确副本,但我需要新记录当然要有一个独特的记录id.含义:我不想id将现有记录复制到新记录.
目前的代码
@blog = Blog.new(title: "some title")
@blog.save
@copy_of_existing_blog = Blog.new(@blog.attributes)
@copy_of_existing_blog.save
Run Code Online (Sandbox Code Playgroud)
它返回此错误:
的ActiveRecord :: RecordNotUnique
我理解为什么它出错了.它试图保存具有id现有记录副本的记录.我只是不知道如何制作一个记录的精确副本,减去id,并将其保存到数据库中.
您需要从属性哈希中过滤掉ID.ActiveSupport有一个方便的Hash#except方法,它可以做到这一点:
Blog.new(@blog.attributes.except("id"))
Run Code Online (Sandbox Code Playgroud)
此外,您可能还想过滤掉时间戳.
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |