20201124_アウトプット(商品出品機能・商品一覧機能)
今日行ったこと 6時間半
商品出品機能(テストコード・JavaScriptの実装)👉LGTM✨
商品一覧機能実装(ブランチを切って作成しプルリクエストまで)
新しい発見
JavaScriptについて。アクションを起こす際に「ページを読み込んだ時に」等の大元の前提がないとエラーになると理解。
FactoryBotとFakerで実装するダミーについて。ここでは「ログイン可能な」ダミーを作り出さないとエラーになると理解。今回はActiveHashで、例えば都道府県であれば
delivery_area_id { Faker::Number.between(from: 1, to: 47) }
と実装した。その時にfrom: 0,
と0を入れてしまうと、バリデーションで「---」(つまり0)の時がNGとかけているので、ランダム実行した時にうまく行く時と行かなくなる時が発生してしまうと理解できた。(ずっとその数字じゃなくてbetween
を初めて取り込んでみたので、そっちがwithin``range
やdigit
の誤りなのかな?!って考えがにいっていた・・)
- nilと””の違いについて。テストコードの時深く考えていなかったけど、
nil(多言語だとNULL)‥「何も存在していない」
ブランク(””や’’)..「値を入れる箱は存在しているが、中身は無い」
という違いがあると理解。
関数を使って空白に指示するような場合やnil?
というようなRailsのメソッドを使う時は、意味を把握して使い分けないといけないと理解。
一般的な意味がわかりやすかった!
Railsに置き換えた時がわかりやすかった!
- 一番勉強になったのはテストコードについて。
・‘カテゴリーが0(---)だと出品できない’
・‘カテゴリーが空だと出品できない’
同じ意味だと思っていたが別物で、両方必要であることの理由が勉強になった。
出品時にカテゴリーをnilにする選択肢はありませんが、chromeの検証ツールなどを使用すればユーザ側でカテゴリーの選択欄を無くしてカテゴリーの値をnilで送信することができてしまいます。そういった操作に備えるためにpresence :trueと、対応したテストを作成していただければと思います)
感想
昨日の夜、Fakerで実装できなかったことについて翌朝自力で解決できた!テストコードで「できること」のexampleだけでなくて「できないこと」のexampleについて考えたら、Fakerで間違っている部分に気づけた。嬉しかった。
あと初めてできて嬉しかったのは、Gemを提供している大元のGitHubのイシューを見て問題解決できたこと!(ずっとやってみたかった!)FakerにActive Storageを入れることによって起こるDBのバグらしく「👍」マークが多い人のコードを取り入れたら、エラー消えた✨
JavaScriptは「ああやったらいいかも」が浮かばなかった😫まだまだ勉強時間が足りないんだと思う。Railsに比べたらほんのちょっとしかやってない・・。今はフリマアプリの完成が1番の目標だけど、自分で作るアプリの時に復習したいな☺️
ビューの方がサーバーサイドよりも「何をやったらいいかわからない」と感じた。トレロ通り実装は出来たようなのでプルリクエストしたけど自信がない😫表示はするけどこれで合ってるのかな・・(不安)意外とビューの知識浅いことに気がついた。HTMLに対してCSSがどう当たるかは理解できるけどerbが混ざってきた時にどこの位置に入れたらいいのかがいまいちわからない。また明日取り組もう^^