Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用已在同一类下的变量的值创建新记录_Ruby On Rails_Ruby_Rails Activerecord - Fatal编程技术网

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'))