アラフォーがお金持ちになるためエンジニアになったブログ

お金も根性も学歴もないアラフォーまきのがエンジニアになってお金持ち目指すよ!

侍エンジニア塾 23回目の授業

どうも、アラフォーまきのです。


今日は23回目の授業でした。


今日はなんだかぼーっとして、せっかくメンターさんがいろいろ教えてくれたのに、一部記憶がなく…。


最近体調不良と合間って、メンタルが下降気味でいろいろ不調です;つらし。

今日までにやったこと

ほとんどなんもできなかった!



実は、ユーザーが消えたら、user.idに紐づく各種データーも消そうということで、削除系の実装を試みていました。



だけど、herokuが絡みはじめて、コードの進め方がまだ理解できていなかったために、ちゃんとDBに連携が取れなくて。




そこへきて、侍塾がもうすぐ終わっちゃうけれど、その後一体どうなるんだ…というメンタル面での落ち込みがあったり。



でもそんなの言い訳なんだよな。



みやぞん曰く

「自分の機嫌は自分でとる」

これですよ。



私は、どうしても気持ちが持ち上がらないなら、
ドットインストールでなんか面白そうなゲームを作る講座を
1つだけでもやってみるとか、
今途中になってる講座1つだけでいいからやることにしてます。




それがいやなら、たった1分でもコードみたらOK。





それすらやりたくないなら、もうさっぱり諦めて寝る。




でもどれを選ぶのかは、自分次第ですよ。
もし「そのコードを書かなかったら今すぐ死ぬぞ」と言われたら、絶対やるでしょ?




やるもやらないも、すべて自分の選択。
わかっちゃいるけど…ってのが実際ですけどね;




ただ、やっぱりメンターさんが死ぬほどよくしてくれるから
それを思うとその恩義に背くようで、サボるほどに心が落ちていく気がする。



とはいえこの先への不安は拭えず…。
人間というのはなかなか面倒なものですw



今日の授業

さて、今日は上記のDBへの連携の順番やら、AWSのS3やらいろいろ教わりました。



ごく簡単にメモります。



1:Herokuデプロイ後にカラムを追加したら


・まずはローカルで試すこと。

・だから最初はrails db:migrate

・いきなりheroku run rails db:migrateしない

・ローカルがOKならgit push heroku masterしてHerokuでの動作を確認!




2:AWS S3の利用


・ややこしいのでまた今度(すでに一部失念;)


【対象のhtmlでみられるソースコードに書かれていることのメモ】
  
・Expiresは有効期限。300(多分ms)つまり一瞬だけ公開。

・SignatureがPWをハッシュにしたもの。ワンタイムパスのようなもの。

・SHA256という暗号のアルゴリズムで作成したワンタイムパスで認証を通そうとしている

・時限URLという。S3はよく使う。

・URLの組み立てはactive storageがやってくれている


・アプリを通してじゃないと画像は見られない

・ストレージそのものがデフォルト:非公開になっている。

・対象のページににアクセスするたび時限URLが作られて、S3から画像を呼んでくる。


参考1 Herokuのサイト
devcenter.heroku.com



参考2:Qiita
qiita.com



2019/02/05加筆
参考3:Heroku 別のストレージサービスを利用する時の、ymlファイルの件
devcenter.heroku.com




3:アップロードする画像のサイズ制限 


ImageMagickをHome brewでインストール

参考:Image Magickサイト
※Image Magickってなんだか不評みたい??

www.imagemagick.org


・Gemファイルに↓を書いて、bundle install

gem 'mini_magick'


・画像を表示するhtml.erbで↓のように書く。

・今回はresizeとしているけれど他にもいっぱいいろんなことができる。

<%= image_tag image.variant(resize: '100x') %>


・100xは横幅だけ100psにして、縦横の比率を変えずに縮小できるようにしている。

・100x100とすると、縦に長い画像、横に長い画像が正方形に形成されて、潰れてブサイクになっちゃうから。


参考:GitHub

github.com




4:削除は論理削除にするので、deviseの物理削除を無効にして、新しくアクションを作る


・とりあえず今あるコントローラに追加

・userの削除のときに「本当にいいの?」と確認

・OKされたら、新たに追加したdeletedカラム(boolean)をtrueにして、退会扱いに。

・退会扱い = 非公開。ログインもNG。

・同時に、user_idを外部キーとして持っているテーブルのデーターもdeletedをtrueへ。

・findを使っている部分に、deleted == falseとして削除済みのものが引っかからないように。




5:特定の条件でのみバリデーションを働かせる


・onオプションを使えばおk

参考:Railsガイド
railsguides.jp




来週までにやること

・論理削除の実装 

・onオプションをつかってバリデーションの追加

・その他こまごました実装




削除系が結構怖い。



かなり紐付けしているので、1つ間違うとデーター壊れてしまうから、慎重に!



さいごに

いやちょっとまとまりがなくて本当にアレなんですが、
もう本当しんどくってしんどくってw



プログラミングは超楽しいのに、この侍塾が終わった後を考えると、
心の中に鉛が溜まっていくようで。



ぐじゃぐじゃいってても仕方ないし、私がやるって決めたんだからやるんですが、
調べるほどに希望がちいさくなっていくからもう本当に;



侍塾が終わったら終了ではなくて、そこからまず始まるんで、
まだ始まってすらいないこの状況。



もうあと一月。



いかにして入り込むか…。
気が重いのが正直ですが、頑張ってみます…。



次回はまた来週金曜日。1週間、頑張ってコーディングします。



もー、本当やるき帰ってこーい!