ryohakjae114 / miniblog

1 stars 1 forks source link

画像を投稿できるようにする #57

Closed ryohakjae114 closed 2 weeks ago

ryohakjae114 commented 3 weeks ago
ryohakjae114 commented 3 weeks ago

投稿作成から画像を投稿して、データに保存できる

タスクばらし

  • [ ] 投稿作成から画像を投稿して、データに保存できる 25m

    • [ ] 事前準備 10m

    • [ ] ソフトのインストール

      • [ ] active_storageをインストール

      • [ ] サードパーティソフトウェアのインストール

        • [ ] brew install vips
        • [ ] brew install ffmpeg
        • [ ] brew install poppler
      • [ ] gem "image_processing"をインストール

    • [ ] セットアップ 5m

      • [ ] $ bin/rails active_storage:install
      • [ ] $ bin/rails db:migrate
    • [ ] 写真をPostに添付する 10m

      • [ ] Post.rbに下記を記述
        has_one_attached :picture
      • [ ] 投稿作成画面に写真を挿入するフィールドを設置
      • [ ] post_controllerでpictureパラメータを許可する
ryohakjae114 commented 3 weeks ago

投稿一覧画面で画像のサムネイルを表示する

タスクばらし 10m

  • [ ] サムネイルバリアントを作成する
    has_one_attached :avatar do |attachable|
    attachable.variant :thumb, resize_to_limit: [100, 100] # サイズはしながら調整
    end
  • [ ] 一覧画面でもし画像があれば、画像を表示する
  - if post.picure.attached?
    = image_tag post.picture.variant(:thumb)
ryohakjae114 commented 3 weeks ago

投稿詳細画面で画像を表示する

タスクばらし 15m

  • [ ] 500✖️500のサイズで表示するvarintを作成(eyecatch)

    • [ ] 投稿詳細画面だった場合、_post.html.hamlで、定義したvariantを表示

      • [ ] _post.html内でpicture_type変数を定義
        picture_type ||= :thum
  • [ ] show.html内でpicture_type: :eyecatchを渡す
  • [ ] 画像以外添付させないようにファイルの拡張子に制限をかける
ryohakjae114 commented 3 weeks ago

テスト作成

タスクばらし

  • [ ] 写真を投稿できること(posts_specの'投稿できること'の中で) 20m

    • [ ] 写真を投稿する 10m
    • [ ] テスト用の写真をプロジェクトに置く
    • [ ] 写真を投稿
      attach_file "ラベル", fixture_file_upload('spec/fixtures/files/ファイル名')
    • [ ] 一覧画面で300pxの正方形サイズで表示されてること 10m
      expect(page).to have_selector("img[src*='test.jpg']")
    • [ ] fastimageをプロジェクトにインストール
      
      require 'fastimage'

    size = FastImage.size('app/assets/images/sample.jpg') expect(size[0]).to eq 300 # widthが600pxであることを期待 expect(size[1]).to eq 300 # heightが400pxであることを期待

  • [ ] 写真を詳細で500, 500表示できること(posts_specの'投稿詳細ページで500pxの正方形で表示されること') 10m
    • [ ] 写真を添付した投稿をfactorybotで作成
      post.picture.attach(io: File.open(fixture_file_upload('spec/fixtures/files/ファイル名')), filename: 'ファイル名.拡張子')
    • [ ] 投稿詳細ページに行き、写真が500pxの正方形で表示されていることを確認
ryohakjae114 commented 3 weeks ago

https://github.com/ryohakjae114/miniblog/pull/60

ryohakjae114 commented 3 weeks ago

写真以外は添付できないように

実装