2021/1/6~2021/1/8

 

 今回の内容

 

 

・商品購入機能の実装

 

・テストコードの実装

 tokenのテストコードの書き方がよく理解できていなかった

 

・DB保存処理修正

データを確認したところ購入した際にDBに保存されていなかった

createアクションでbinding.pryをしたところidが送られておらず、permit:falseとなっていた

createアクションではデータがない場合でもからのデータとして送信されてしまう

create!とすることでデータがない時はエラー表示することができる

フォームオブジェクトの理解が足らない

 

・購入済み商品表示の変更

sold_outの表示ができるようにif文を記述

<%# 商品が売れている場合は、sold outを表示しましょう %>
<% if @item.order.present? %>
<div class='sold-out'>
<span>Sold Out!!</span>
</div>
<% end %>
<%# //商品が売れている場合は、sold outを表示しましょう %>

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     

で調べ、その対応をしていくことで解消できた

 

 

これで達成要件は完成なので最終チェックをしてもらう 

 

 

 

感想

 

 今回はメンターさんに質問して解決したが今後は自分でこのようなエラーを解決できるようにしなければならない

そのためにも質問できるうちに多くのエラーを体験して経験することが大切