ActiveRecord create: pass in an array of attributes

后端 未结 2 827
野的像风
野的像风 2021-01-11 22:29

I would like to know if there is a Rails way to create multiple records by passing in an array of attributes.

For instance, instead of

MyModel.create         


        
2条回答
  •  佛祖请我去吃肉
    2021-01-11 23:21

    At the time the question was asked ActiveRecord did not have any built-in features to efficiently insert multiple records at once. As of today Rails 6 is the current stable release and it comes with Model#insert_all! which is a method for bulk inserting.

    You'll find the documentation for it here https://edgeapi.rubyonrails.org/classes/ActiveRecord/Persistence/ClassMethods.html#method-i-insert_all-21

    It is worth to mention that Rails 6 also implements Model#upsert_all! which efficiently inserts or updates in case the the record exists.

提交回复
热议问题