売却されていないページに遷移されない‥
こんにちは!
最終課題でメルカリみたいなwebアプリケーションを
実装しています。
エラーが発生したので記事にしました。
NoMethodError
商品詳細ページにおいて売却済みなら画面に
sold out!!と表示されるように実装していました。
<%if @item.id == @item.order.item_id %>
<div class="sold-out">
<span>Sold Out!!</span>
</div>
<% end %>
この記述で売却済みの商品詳細ページに遷移すると、
以下のように表示されホッとしてました。
しかし、売却されていない商品詳細ページへ
遷移しようとするとエラーが‥
このエラーで3時間泣きました。
エラーの原因
if文を使っているのになんでfalseの処理をしてくれへんねん!!
と泣きながら叫んでました。
そもそもshow.html.erbで記述した条件式だと、
odersテーブルにitem_idが存在している前提で
話を進めちゃってるのでエラーが出て怒られちゃったみたいです。
エラー文のちっちゃいところに
undefined method `item_id' for nil:NilClass
ってitem_idがないやんけアホンダラア!!!!って書いてますね。
エラーの解消
条件式の内容を見直しました。
ordersテーブルのitem_idとitemテーブルのidが等しいか等しくないかとか
ネチネチ細かく記述しないで
もうordersテーブルがあるかないかで条件式を組みました。
<% unless @item.order == nil %>
<div class="sold-out">
<span>Sold Out!!</span>
</div>
<% end %>
大胆にいけば売却されてないページもうまくいきました。
Author And Source
この問題について(売却されていないページに遷移されない‥), 我々は、より多くの情報をここで見つけました https://qiita.com/hayatoganbaru/items/8fc1eb31a7dd590e9708著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .