結論
app/models/user.rb
class User < ApplicationRecord
before_save { self.email = email.downcase }
+ before_create do
+ avatar.attach(io: File.open("#{Settings.default_image[:avatar_path]}"), filename: "#{Settings.default_image[:avatar]}")
+ end
has_one_attached :avatar
:
config/settings.yml
:
default_image:
avatar: "avatar.png"
avatar_path: "app/assets/images/avatar.png"
解説
ユーザー作成時に自動的にアバター画像を登録させるプログラムを作成しました。
方法としては、モデルのコールバックメソッドを用いて(今回は before_create
)、ユーザーオブジェクトが保存される前に、画像を添付しています。
2つ目のconfig/settings.yml
ファイルに関しては、定数管理を扱うファイルであり、ファイル名のハードコーディングを防止する目的で利用しています。
以上です!記事に目を通して頂きありがとうございました!!