#概要
rails_adminを使ってデータ登録するにも、毎回ゼロから打ち込むのめんどくさかったです。
コピペ&新規作成&登録したい!
そこで見つけた「rails_admin_clone」のgemですが、日本語解説が見当たらなかったので一応投稿しておきます。
#導入方法
公式Git
https://github.com/dalpo/rails_admin_clone
ぶっちゃけ全部これ見てやれば良いですね……。
Gemfileでの順番が大事だよ!というのだけ注意すれば良さそう。
(順番なんかが影響する事あるんか……)
メソッドの記述場所だけ分かりにくかったのですが、app/model/でそれぞれのモデルに書けば良かったです。
##Gemfile
gem 'rails_admin_clone'
gem 'rails_admin'
順番注意!
書いたらbundle install
##共通設定
cloneのaction追加、これは必須。
RailsAdmin.config do |config|
config.actions do
dashboard
index
new
export
history_index
bulk_delete
show
clone # Add the clone action
edit
delete
history_show
show_in_app
end
end
##カスタマイズ
書く場所は2つ。
config/initializers/rails_admin.rb
app/model/item.rb(それぞれのmodel)
何もしなかった場合、そのままコピーされるっぽい?
全然それでもいい場合もあると思うので全部設定する必要は無さそうです。
ただ画像使う場合とかは設定しておかないと同じ画像を間違えて登録しちゃいそうなので必須かと。
# ~~~~~~~~~ 中略 ~~~~~~~~~~
# カスタマイズ(最下部に書いてます
config.model 'Item' do
clone_config do
custom_method :clone_method_item
end
end
end
class Item < ApplicationRecord
belongs_to :title
belongs_to :sub_title, optional: true
belongs_to :rare, optional: true
mount_uploader :image, ImageUploader
def clone_method_item
self.dup.tap do |item|
item.title = self.title
item.sub_title = self.sub_title
item.pos = self.pos.next # .nextで次の数値入れてくれるので便利~
item.image = "" # この設定しておかないと同じ画像が登録されちゃうっぽい
item.name = :draft # 公式を真似したけど意味あるんですかねこれ。初期値が入る?
end
end
end
以上です!
サーバ再起動忘れずに!
#まとめ
意外と簡単に出来ましたね。
メソッドの定義場所が公式ドキュメントだと分からなかったですけど、それぞれのmodelに書けばいいだけでした。
v0.0.6という感じだったりGitでのスターが少なくて心配でしたが、まぁ使えますし……。
同じようなデータ登録は相当快適に出来ると思います。
慣れた人はrails_admin自体を使ってないという可能性もありますが……w
Railsコミュニティ入ってないので分からないです😂
参考になれば幸いです。
終わり