20210116_アウトプット(オリジナルアプリ)
今日行ったこと 7時間15分
- オリジナルアプリ
*ホーム画面(ヘッダーフッターの実装)👉2時間15分(完)
*新規登録・ログイン画面のビュー👉2時間40分(完)
*ユーザー新規登録のテストコード👉2時間20分(8割くらい)
新しい発見
実装していた時に、参考にしたサイト
- 記事に影を出す際、勉強になった!!
- 記事を投稿する時にこれ使いたいと思った。見易くて便利!
Userモデルのテストコードについて
ダミーを作れるFakerについて、文字数に関する制限ができるのとできないのがあると知った💡
- nicknameについて「15文字以下」にしたかったので、
nickname { Faker::Name.name(max_length: 15) }
にしたら以下の通りエラー。
ArgumentError: wrong number of arguments (given 1, expected 0)
何故だろう??と思って、FakerのGithub見ていたら、見本から、lengthを設定できるものと出来ないものがある(それぞれ毎に型が決まっている)という違いを見つけた。
nickname { Faker::String.random(length: 1..15) }
にしたところ、15字以下で生成されるようになったが、string
なのに、記号とかも生成されちゃうので、テストコードのコマンド実行時にアプリのDB側で「保存できません」とエラーになってしまった😂結果、ニックネームということでキャラクターの名前のFakerを使った。
Rails6.0とMysql2の互換性について
テストコード上は、緑色になり完了するものの、警告がでた。(フリマアプリの時ログ見たら同じエラー出ていたのに気づかなかった)
まずこのエラーはなにか?
- 一意性を持たせる制約について、Mysqlは大文字と小文字を区別するが、Rails6.0は区別しないので、エラーが出ていることが分かった。
そこから解決しようと思ったこと
伊藤さんの記事では割愛されているが最良と思われる「DB側のcollationをutf8mb4_binのような「大文字小文字を区別するcollation」に変更する」にチャレンジしたかった。
結論、下記の記事を見て、マイグレーションファイルの変更を試みたがうまくいかなかった。
- 分かったことは、
utf-8
でもutf-8mb4
でも、このエラーは発生すること。(utf-8mb4
が原因かと思い以下のようにDBリセットするも同じエラー)
rails db:drop utf8に直す rails db:create
最近リリースされたRails6.1ではその部分が解消できるようなので、オリアプ作り終えたらバージョンアップにもチャレンジしたいと思った。
感想
今日はひたすらオリジナルアプリを作っていた。
最近、DBとフレームワークの関係性について視点を持てるようになった。(前までは「RailsではMysqlを使う」という把握で、それ以外にもDBはあるという事を分かっていなかった)
互換性を予め知ることは、後々の運用でバグを減らす一助になるのではないか?と思った。
後、今はユーザーが誰もいないので、「drop」「reset」を簡単にできるけど、リリースしたらすでにある情報の移し替えなどもあるだろうし、DBを後から変更するのは、労力が大きいと思うので最初に何選ぶのかちゃんと考えるのが大事、そのために互換性について今後も把握していきたい!と感じた。
企業に入れたら、どんなDB使っているのか・何故使っているのか等知れたら楽しそうだなあとワクワクしながらオリジナルアプリ作っていた。
行きたい企業のプログラマーになりたいなあ。頑張ろう!
覚書(12/29計画の見直し)
(1)やるべきこと (2)やりたいこと (3)やれること
(1)やるべきこと
- 卒業要件の完成
(2)やりたいこと
追加実装を学ぶためのミニアプリ作成
オリジナルアプリの作成
PHPの勉強
面白そうだから参加したい・見たい(済:やめ太郎さんのキータ表彰・yahooイベント)
読書
(3)やれること
メンタル:楽しみながら、ゲーム感覚でいく🎮😎
時間で区切り(達成すればよし)
PHP 一日15分以上
オリジナルアプリ 1日1時間以上
追加実装のミニアプリを作り、引き出しを増やす
優先順位 | 内容(機能) | 締め切り | 達成度 |
---|---|---|---|
1 | AWS S3 | 12/18 | 完了(フリマアプリ)に実装) |
2 | AWS EC2 | 12/24 | 完了(フリマアプリに実装) |
3 | ウィザード形式 | 12/27 | 完了 |
4 | SNS認証 | 12/28 | 完了 |
5 | 複数条件検索 | 12/29 | 完了 |
6 | タグ付 | 12/31 | 完了 |
7 | 画像プレビュー | 1/2 | 完了※フォーク |
8 | 複数枚写真OK | 1/4 | 完了※7に追加実装 |
9 | コメント機能(即時更新) | 1/8 | 完了 |
10 | クレカ登録 | 1/10 | |
11 | パンくず | 1/14 | |
12 | 日本語エラー | 1/18 |
身に付ける力(直近)
PHP7
Docker