Closed ryohakjae114 closed 4 months 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パラメータを許可する
has_one_attached :picture
タスクばらし 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)
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)
タスクばらし 15m
[ ] 500✖️500のサイズで表示するvarintを作成(eyecatch)
[ ] 投稿詳細画面だった場合、_post.html.hamlで、定義したvariantを表示
- [ ] _post.html内でpicture_type変数を定義
picture_type ||= :thum
- [ ] show.html内でpicture_type: :eyecatchを渡す
- [ ] 画像以外添付させないようにファイルの拡張子に制限をかける
picture_type ||= :thum
タスクばらし
[ ] 写真を投稿できること(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の正方形で表示されていることを確認
[x] 写真を投稿できること(posts_specの'投稿できること'の中で) 20m 14:42~
[x] 写真を投稿 ~ 15:10
attach_file "ラベル", fixture_file('ファイル名')
- [ ] 一覧画面で300pxの正方形サイズで表示されてること 10m
expect(page).to have_selector("img[src*='test.jpg']")
ActiveStorage::Blob.service.send(:path_for, Post.last.picture.blob.key
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であることを期待
def allowed_picture_content_type
unelss picture.content_type.in?(%('image/heic image/jpeg image/png'))
error.add(~)
end
end
def allowed_picture_content_type
unelss picture.content_type.in?(%('image/heic image/jpeg image/png'))
error.add(~)
end
end
[x] タスクばらし、調査 17:50~
[x] 投稿作成から画像を投稿して、データに保存できる ~ 18:15
[x] active_storageをreadme読む
[x] pictureとphotoの違いについて
[x] 投稿一覧画面で画像のサムネイルを表示する 11:05~
https://railsguides.jp/active_storage_overview.html#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E6%B7%BB%E4%BB%98%E3%81%99%E3%82%8B 11:05~11:10
オリジナルの画像よりもファイルサイズの小さいものが表示されるように
画像が存在するのか、どうかをチェックする方法 ~ 11:20
[x] 投稿詳細画面で画像を表示する 10:45~
[x] 調査 ~ 11:16
[x] テスト作成 11:32~
[x] 調査、タスクばらし
[x] 写真以外は添付できないように
[x] n+1問題解決
[x] 写真以外を添付させないように、ブラウザがでも制限をかける