個人的に作成したアプリが
PythonでYouTubeとTwitterのAPIの情報を取得する
↓
CSVでRailsのテーブルに登録
という手順。
今まではコマンドで実行していたが、視覚的にインポートをやりたいというのと、デプロイ後の管理方法が面倒なので、管理画面を実装したいなぁと思っていました。
そこで、ActiveAdminを使用することで課題がほぼ解決に。
gem "activeadmin", github: "gregbell/active_admin"
gem "active_admin_importable"
インポートもするので、二つともGemfileに記述。
でいつもの
bundle install
rake db:migrate
rails s
を順番に実行。
AdminUser.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password') if Rails.env.development?
と記述がある通り、emailとpasswordの記載があります。
にアクセス。
rails g active_admin:resource モデル名
にて管理画面専用のモデルを作成。
今回はツイートモデルを例に
ActiveAdmin.register Tweet do
active_admin_importable do |model, hash|
model.create(text: hash[:text], image: hash[:image])
end
permit_params :text, :image
end
これで手動で登録することもできるようになりますし、インポートも可能。
課題
今回の使用用途としては困らないですが、アソシエーションしている時に登録がうまくいかなかったです。
多分paramsの設定を○○_idって感じにしなきゃいけないっぽい。
とりあえず今回の目的としてはインポートができるので、すべてOK。
備考
日本語表記に変更したり、タイムゾーンを変更できたりもするらしい。
個人的な最終形としては
Pythonで集計も定期実行にして、このインポートも定期実行にしてってやれば、ほぼメンテナンス要らずで管理ができるので、楽かなと。
そんな幻想を抱きながら、今日の作業は終了です、お疲れ様でした。