0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】rails_adminでコピペ新規作成する方法【rails_admin_clone】

Posted at

#概要
rails_adminを使ってデータ登録するにも、毎回ゼロから打ち込むのめんどくさかったです。
コピペ&新規作成&登録したい!

そこで見つけた「rails_admin_clone」のgemですが、日本語解説が見当たらなかったので一応投稿しておきます。

#導入方法

公式Git
https://github.com/dalpo/rails_admin_clone

ぶっちゃけ全部これ見てやれば良いですね……。
Gemfileでの順番が大事だよ!というのだけ注意すれば良さそう。
(順番なんかが影響する事あるんか……)

メソッドの記述場所だけ分かりにくかったのですが、app/model/でそれぞれのモデルに書けば良かったです。

##Gemfile

Gemfile
gem 'rails_admin_clone'
gem 'rails_admin'

順番注意!
書いたらbundle install

##共通設定
cloneのaction追加、これは必須。

config/initializers/rails_admin.rb

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/initializers/rails_admin.rb

# ~~~~~~~~~ 中略 ~~~~~~~~~~

  # カスタマイズ(最下部に書いてます
  config.model 'Item' do
    clone_config do
      custom_method :clone_method_item
    end
  end

end
app/model/item.rb
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コミュニティ入ってないので分からないです😂

参考になれば幸いです。

終わり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?