Ruby on rails 如何使用已在同一类下的变量的值创建新记录
我一直删除记录以进行测试,并且需要重新创建相同的记录以再次进行测试 这样做:Ruby on rails 如何使用已在同一类下的变量的值创建新记录,ruby-on-rails,ruby,rails-activerecord,Ruby On Rails,Ruby,Rails Activerecord,我一直删除记录以进行测试,并且需要重新创建相同的记录以再次进行测试 这样做: User.create(name: "Peter", col1: "etc", col2: "etc", ...) u = User.last User.last.delete 如何完成这样的事情?: User.create(u) u已经是Userclass`: u.class => User(id: integer, name: string, ...) 事实证明,这很简单: User.create!(u
User.create(name: "Peter", col1: "etc", col2: "etc", ...)
u = User.last
User.last.delete
如何完成这样的事情?:
User.create(u)
u
已经是User
class`:
u.class => User(id: integer, name: string, ...)
事实证明,这很简单:
User.create!(u.attributes)
事实证明,这很简单:
User.create!(u.attributes)
如何做到这一点
User.create(u)
create
接受散列,因此您可以传递所有u
属性的散列键值对(除了id
):
请注意,如果您有任何唯一性验证,它将失败
如何做到这一点
User.create(u)
create
接受散列,因此您可以传递所有u
属性的散列键值对(除了id
):
请注意,如果您有任何唯一性验证,它将失败。如果您使用此选项:
User.create!(美国属性)
它将给您错误'ActiveRecord::RecordNotUnique'
你可以用这个。它将创建具有新id的新记录
User.create(u.attributes.except('id'))
如果您使用此选项:
User.create!(美国属性)
它将给您错误'ActiveRecord::RecordNotUnique'
你可以用这个。它将创建具有新id的新记录
User.create(u.attributes.except('id'))