如何在rails(V4.2.3)中创建批量记录
How to create bulk records in rails(V4.2.3)
我尝试一次创建多个记录,但出现错误。
示例:
Job.find(5601).job_permissions.insert_all(recruiter_id: recruiter.id, job_access_action_id: job_access_action_id.id)
Job.find(5601).job_permissions.bulk_insert(recruiter_id: recruiter.id,
job_access_action_id: job_access_action_id.id)
错误:
NoMethodError:JobPermission Load (0.3ms) SELECT job_permissions
.* FROM job_permissions
WHERE job_permissions
.job_id
= 5601
#JobPermission::ActiveRecord_Associations_CollectionProxy:0x0055c4da1ceea0
的未定义方法“insert_all”
您需要在 ActiveRecord class 上调用 insert_all,而不是像现在这样 association_proxy,因此:
Job.insert_all([{recruiter_id: ..., {recruiter_id: ...}])
create
方法也接受一个数组作为参数。
JobPermission.create(
[
{ job_id: job.id, recruiter_id: recruiter.id, job_access_action_id: job_access_action_id.id },
...
]
)
我尝试一次创建多个记录,但出现错误。
示例:
Job.find(5601).job_permissions.insert_all(recruiter_id: recruiter.id, job_access_action_id: job_access_action_id.id)
Job.find(5601).job_permissions.bulk_insert(recruiter_id: recruiter.id,
job_access_action_id: job_access_action_id.id)
错误:
NoMethodError:JobPermission Load (0.3ms) SELECT job_permissions
.* FROM job_permissions
WHERE job_permissions
.job_id
= 5601
#JobPermission::ActiveRecord_Associations_CollectionProxy:0x0055c4da1ceea0
您需要在 ActiveRecord class 上调用 insert_all,而不是像现在这样 association_proxy,因此:
Job.insert_all([{recruiter_id: ..., {recruiter_id: ...}])
create
方法也接受一个数组作为参数。
JobPermission.create(
[
{ job_id: job.id, recruiter_id: recruiter.id, job_access_action_id: job_access_action_id.id },
...
]
)