小学校の先生に向けに、板書の写真を共有できるオリジナルアプリを作りました。
Herokuでデプロイしたのですが、結構手こずったので記事にしておきます。
まずは
こちらの記事を参考に進めていきました。
https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39
(【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】)
いくつかのエラーに見舞われたものの、ひとまずこれでデプロイが完了しました。
※Users_controller.rbの中にApplicationControlleという記述があり、ややハマりました。rがないからそりゃNameErrorなんだけどさ、ローカルでもエラー出してくれよ…
画像が消える
よっしゃーデプロイできたー!と思ったのもつかの間、投稿時には普通に表示されていた画像が、しばらく経つと見られなくなっている…!?
調べてみたら、こんな記事が
https://qiita.com/hmmrjn/items/b02f076ceaeeaaceb999
(Herokuでアップロードした画像が時間経つと消える問題)
なるほど、どうやら正常な挙動のようだ。
ということでクラウドストレージS3を導入することにしました。スクールのカリキュラムで一度やっているとはいえ、AWSを扱うのは初心者としてはドキドキするのよね。
S3の導入
以下の記事を参考に進めました。
https://qiita.com/hmmrjn/items/479c9e9ce82771f1b6d7
(【Rails】AWS S3を使ってHerokuで画像を投稿できるようにする方法)
自分のアプリはActiveStrageではなくCarrierwaveを使って画像のアップロードを行っていたので、こちらの記事も参考にしました。
https://qiita.com/nobu0717/items/a34a896f6e7ad68dc54e
(Rails+CarrierWave+heroku環境でAWS S3へ画像をアップロードする)
記事中に
$ EDITOR=vim rails credentials:edit
ってコマンドがあるんですけど、Windowsだからなのか
'EDITOR' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
って怒られちゃうんですよね。
いろいろ調べた結果、左下の検索ボックスで「システム環境変数の編集」→「環境変数」とたどって、ユーザー環境変数のところに新規で、
変数:EDITOR
値:"C:\Users~略~\Code.exe" -w -n
(editorの場所を示すパス。自分はvscodeがある場所を指定しました。-w -nの意味はよく分かっていません汗)
って設定してやることで、
rails credentials:edit
ってうつと勝手にeditorが起動してcredentials.yml.encを編集できるようになりました。ここがハマりポイントでした。
ちなみにcredentials.yml.encについては下記の記事も参考にしました。
https://qrunch.net/@WEkFtOQhlqcyDEsy/entries/bvfUcf0RmWqQ2NVH
https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39
でようやく
S3の導入が完了してuploadされているのを確認することができたのでした。
ちゃんとS3に投稿した画像が送られたときには歓喜でしたね。