概要
railsの管理画面でよく使われている
active_adminからcsvでデータをimportしたい。
そういう時にactive_admin_importableをいうgemが便利。
github https://github.com/krhorst/active_admin_importable
準備
gemfile
gem 'active_admin_importable'
下記のようなuserモデルがあるときに
app/model/user.rb
# Table name: users
# id
# name
# gender
class User < ActiveRecord::Base
attr_accessible: :name, :gender
end
ActiveAdminで管理している下記のfileに
active_admin_importable
を例えば下記のように追記
app/admin/users.rb
ActiveAdmin.register User do
active_admin_importable do |model, hash|
model.create(name: hash[:name], gender: hash[:gender])
end
end
手順
①管理画面にアクセスすると、"User"ページの右上に"Import Users"ボタンが表示。
②押すとファイル選択画面が表示されるので、例えば下記のようなcsvを選択すればデータをimportできる。
:name | :gender |
---|---|
"sample_1" | "male" |
"sample_2" | "female" |
"sample_3" | "male" |
※ 用意するCSVデータの一行目には、モデルのカラム名を記載するように。