2021/1/9~2021/1/15
今回の内容
・furimaアプリについて
furimaアプリは最終チェックをしてもらった結果、特に修正もなく完成した。
・今後やること
・furimaアプリの追加実装
・個人アプリの開発
・就活準備
・rubyの復習
・個人アプリについて
個人アプリは今のところ2つ考えていて
1つ目の案は「確率を使った勝率予測アプリの開発」
2つ目の案は「壁紙張り替え業務のWEBページ作成」
完成期限を2月3日にしたいので2つ同時に進めるのは難しい
感想
予定よりは時間がかかってしまったが、とりあえずはfurimaアプリが完成して良かった。
ここまでが練習でここからの個人アプリ、追加実装が大事なのでさらに努力していきたい
2021/1/6~2021/1/8
今回の内容
・商品購入機能の実装
・テストコードの実装
tokenのテストコードの書き方がよく理解できていなかった
・DB保存処理修正
データを確認したところ購入した際にDBに保存されていなかった
createアクションでbinding.pryをしたところidが送られておらず、permit:falseとなっていた
createアクションではデータがない場合でもからのデータとして送信されてしまう
create!とすることでデータがない時はエラー表示することができる
フォームオブジェクトの理解が足らない
・購入済み商品表示の変更
sold_outの表示ができるようにif文を記述
itemsテーブルにorder_idというカラムはないのでitemsテーブルから引用はできないと思っていたが、アソシエーションができていれば「.”アソシエーションの形”」で記述できる。
存在するかしないかで条件分岐させたかったので.prezent?をしようした
購入機能が完成したのでコードレビューしたところ初めて1発でLGTMがもらえた
変更をデプロイしたところDBにアクセスする画面でエラーが発生
DB内のカラムを変更した部分がgit push heroku master をしてもうまく読み込まれなかった。
heroku run rails db:migrate:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1
でDBを何回かリセットした結果解決した
どこでエラーが起きているかを
heroku logs --tail
で調べ、その対応をしていくことで解消できた
これで達成要件は完成なので最終チェックをしてもらう
感想
今回はメンターさんに質問して解決したが今後は自分でこのようなエラーを解決できるようにしなければならない
そのためにも質問できるうちに多くのエラーを体験して経験することが大切
2021/1/4~2021/1/5
今回の内容
・商品購入機能の実装
・クレジットカード購入機能の実装
jsを使用してクレジットカードで購入ができるようにする
クレジット機能はDBには保存しない
公開鍵を設定した際エラーが発生した。
今回のエラーはコードは間違ってなかったがクレジットカードのトークンが読み込まれないエラーだった
メンターさんに質問したがなかなか解決できず、30分くらいかかりキャッシュを削除することでエラーが解決できた
感想
あと少しで完成できそう
テストコードと細かいところを明日直し、コードレビューまでいきたい
今回のエラーはコードが間違ってない、PCのキャッシュが原因のエラーだった。今後個人アプリ等でこのエラーが出た場合、気づけない可能性が高い。ターミナルやアプリの再立ち上げ、キャッシュの削除、この辺りもエラーの原因になることがわかった。
2020/12/21~2020/12/27
今回の内容
・商品購入機能の実装
・購入のためのフォーム実装
カード情報と住所情報をのフォームのリンクが
このように書かないとうまくリンクしなかった
今まではmodelかurlどちらかだけだったが
なぜ両方必要かわからなかった
仮説としては、フォームオブジェクトを使用していることが関係していると考えている
メンターさんに質問したがフォームオブジェクトを使っているからという結論だったので、今後また勉強したい。
感想
年内完成を目標にしていたが、あと少し終わらせることができなかった、商品購入機能で多くつまづいてしまったことに原因がある。
来年が勝負になるので
勉強の質と量を上げていく
2020/12/21~2020/12/27
今回の内容
・商品購入機能の実装
・クレジットカード決済機能の実装練習
オープンAPIを用いてクレジット決済機能を導入する
PayJpサービスを利用
javascriptでフォームを送信する
・1つのフォームから複数のテーブルに保存する機能練習
1つのフォームから複数のテーブルに保存するためにはフォームオブジェクトを使用する
・実際のアプリへの実装
購入機能に必要なモデルやコントローラーを作成する
感想
購入機能を進める際によくわからないまま、必要そうな機能を実装していった為、どこが間違っているかわからず、時間がかかってしまっている。
フォームオブジェクト、クレジット決済についてはまだ理解が浅い為あとで復習したい
一つ一つ問題を解決していき年内に完成させたい
2020/12/20
今回の内容
・商品削除機能の実装
・destoroyアクションの導入
MVCの流れ通り実装していく
ビューでこのように
コントローラーで
書いたところエラーが発生
ActiveRecord::RecordNotFound in ItemsController#destroy
Couldn't find Item with 'id'=@item
45 46 47 48 49 |
def item_find
@item = Item.find(params[:id])
end
end
|
destroyアクションでidが見つからないエラーが出ている
他のアクションではこのコードで上手くいっていることからビューの記述が間違っているのではないかと考えた
ビューの記述を
と変更したところ解決した
メンターさんに質問したところ
railsではlink_toを使用する時はurlを記述するより、rails routesのPrefixを記述する方が一般的で使いやすいらしい
細かい部分を修正してLGTM
感想
コードが長くなってきたのでメンターさんに指摘される前に自分でも同じコードが合ったらまとめられるようにしたい
チーム開発に誘っていただいき、チームでアプリ開発をすることができる
その第1回のミーティングが実施された
人数が多いため2グループに分けることになったがその1グループのリーダーをすることになった
意見を出すことの方が多く、まとめる役はあまりやってこなかったがいい経験になると思うので頑張りたい
2020/12/18~2020/12/19
今回の内容
・商品詳細表示機能の実装
・詳細ページの編集
前回の疑問点
トップページでは画像のリンクを
と書いていたが
詳細ページでは
と@を付けないとエラーになった理由
メンターさんに質問する前に自分でもう一度コードをみていたら
トップページは
1行目でitemを定義していたため使えているということがわかった
念のためメンターさんにも確認したところ
その解釈で合っていて、コントローラーに定義しないとビューに反映させることはできないと教えていただきました。
商品詳細ページは細かいところを直しLGTM をもらった
・商品詳細表示機能の実装
・editとupdateのMVCを追加
newとcreateアクションとほぼ同じ実装
updateのエラーメッセージを表示させる際に
エラーが発生
内容はupdateメソッドでmodelがないというエラーだった
ビューのコード
コントローラのコード
ビューのrenderエラーメッセージのコードの引数が@itemに対して、コントローラーでのupdeteの記述がitemで書いていたことが原因だった
このように直して解決した。
コントローラーのコードが
このように
を3回記述している
railsでは同じ記述は繰り返し書かないようにしたい
before_actionにまとめたいがメソッド化しないと記述できない
よって
privateにメソッドとして記述することでまとめることができる
補足: before_actionで特定のアクションのみ使いたい場合はonlyだが
特定のアクションのみ使いたくない場合はexceptと記述する
感想
メンターさんに質問してみると、自分の見落としですぐに解決することが多い
もう少し自分で考えてから質問していきたい
今回のbefore_actionのように調べて補足内容がわかったらっ忘れないようにここでアウトプットしていく