Active Storage
ファイルアップロード機能を提供。
インストール
% rails active_storage:install
% rails db:migrate
設定
# 開発環境 # config/environment/development.rb config.active_storage.service = :local # 本番環境 Amazon S3を使うときの例 # config/environment/production.rb config.active_storage.service = :amazon
# config/storage.yml amazon: service: S3 access_key_id: アクセスキーID secret_access_key: シークレットアクセスキー
指定のモデルとファイルを関連付ける
class Micropost < ApplicationRecord has_one_attached :image # 投稿一件につき画像一枚 has_many_attached :image # 複数枚も可 end
ビューにアップロードフィールドを追加
<%= f.file_field :image %>
コントローラに画像追加処理を記述
class MicropostsController < ApplicationController def create @micropost = current_user.microposts.build(micropost_params) @micropost.image.attach(params[:micropost][:image])
画像を表示
<%= image_tag micropost.image %>