7.2 モデルとの関連
モデルに単一のファイルを添付する
モデルに単一のファイルを添付可能にするにはhas_one_attached
を使います。
以下の例ではPost
にカバー画像を添付可能にする設定です。
class Post < ApplicationRecord
has_one_attached :cover_photo
end
attach
メソッドでファイルを添付する
モデルにファイルを添付するにはattach
メソッドを利用します。
@post = Post.find(params[:id])
@post.cover_photo.attach(params[:cover_photo])
attached?
メソッドでファイルの存在を確認する
attached?
メソッドを利用することでファイルの存在を確認することができます。
@post = Post.find(params[:id])
@post.cover_photo.attached? # true
モデルに複数のファイルを添付する
モデルに複数のファイルを添付可能にするにはhas_many_attached
を使います。
以下の例ではPost
に複数の本文画像を添付可能にする設定です。
class Post < ApplicationRecord
has_many_attached :body_photos
end
attach
メソッドでファイルを添付する
モデルにファイルを添付するにはattach
メソッドを利用します。
@post = Post.find(params[:id])
@post.body_photos.attach(params[:body_photos])
attached?
メソッドでファイルの存在を確認する
attached?
メソッドを利用することでファイルの存在を確認することができます。
@post = Post.find(params[:id])
@post.body_photos.attached? # true
モデルに添付されたファイルを削除する
モデルから添付ファイルを削除するにはpurge
メソッドを使います。
@post = Post.find(params[:id])
@post.cover_photo.purge