RailsをApiモードで使用しています。
Active StorageでUsersテーブルにavatarというカラムをつけて、ユーザーごとにアバター画像を持たせています。
Usersコントローラーのindexアクションでユーザーの一覧を取得した際に、avatarカラムに登録した画像のファイル名とダウンロードリンクも一緒に返したいのですがどうしたらいいのか分かりません。
以下のコードのようにアバター画像があった場合、user["file"]にそのデータを入れてみようとしたのですが、モデルでfileカラムを追加してないためActiveModel::MissingAttributeError: can't write unknown attribute 'file'
のエラーが出ました。
fileカラムを追加しておけば、これは防げると思うのですが、そもそも「ユーザーの一覧を取得した際に、avatarカラムに登録した画像のファイル名とダウンロードリンクも一緒に返したい」際に、この方法がベストなのか確証が持てておりません。
皆さんがどのようにしているのか、教えて頂けると助かります。
def index users = User.all.order("created_at DESC") for user in users do if user.avatar.attached? user["file"] = {filename: user.avatar.filename, link: rails_blob_url(user.avatar)} end end render json: { status: 'SUCCESS', message: 'Loaded users', users: users } end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。