2016-12-24 55 views
0

我將一個電話號碼數組傳遞給我的api,並希望將它們插入到數據庫中。高效地將字典插入postgresql

我該如何做到最有效的方式?

這是目前有點低效的,因爲它的字面將其劃分爲500條INSERT語句,如果有500個聯繫人

這是我如何將他們..

params[:phone_numbers].map{ |key, value| 

     UserContact.create({ 
      user: current_user, 
      name: key, 
      number: value 
     }) 
    } 

如何優化?

回答

0

你正在尋找的是爲activerecord-import gem

的Rails 5.0

ActiveRecord使用進口0.11.0或更高。

因爲簡單的香草,現成的ActiveRecord不提供有效插入大量數據的支持。香草ActiveRecord的,你將不得不對每個模型保存操作執行各個:

在Gemfile中:

gem "activerecord-import" 

在模型:

require "activerecord-import" 

在控制器:

user_contacts = [] 
    params[:phone_numbers].map{ |key, value| 
     user_contacts << UserContact.new(user: current_user,name: key,number: value) 
    } 

    UserContact.import user_contacts 

有關activerecord-import的更多信息請參閱其wiki:https://github.com/zdennis/activerecord-import/wiki