Activerecord Import Gem
Bài đăng này đã không được cập nhật trong 7 năm
Activerecord là một gem dùng để import nhiều bản ghi cùng một lúc vào cơ sở dữ liệu.
-
Cài đặt gem
gem 'activerecord-import', '~> 0.10.0'
-
Yêu cầu
Đối với rails 5.0 cần sử dụng version 0.11.0 hoặc cao hơn
Đối với rails 4.0 cần sử dụng activerecord-import 0.4.0 hoặc cao hơn
Rails 3.2.x trở lên, trừ 4.0 dùng activerecord-import 0.3.0 hoặc hơn
-
Cài đặt sử dụng
Ta có
model User.rb
class User < ApplicationRecord
has_many :user_functions, dependent: :destroy
has_many :functions, through: :user_functions
Model Function.rb
class Function < ApplicationRecord
has_many :user_functions, dependent: :destroy
has_many :users, through: :user_functions
end
Model UserFunction.rb
class UserFunction < ApplicationRecord
belongs_to :user
belongs_to :function
end
Để lưu tất cả các userfunction của 1 user ta dùng activerecord-import như sau:
puts "create function for trainers"
trainers = []
Trainer.all.each do |trainer|
Function.all.each do |function|
trainers << trainer.user_functions.new(function: function, user: trainer, role_type: 1)
end
end
UserFunction.import trainers
All rights reserved