0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

商品が購入された時の条件分岐

Posted at

はじめに

今日の学習で学んだことを掲載していきます。
初心者ですので温かく見守ってください、、、、

商品が購入された場合の条件分岐

今回は商品が購入された場合にはSold Out!!の文字が出るように実装しました。

商品一覧画面

<% if item.order %>
  <div class='sold-out'>
    <span>Sold Out!!</span>
  </div>
<% end %>

itemという商品が保存されているテーブルとorderという商品が購入されたことが保存されるテーブルの二つが存在し、これらはアソシエーションが組まれています。
ですので、orderテーブル内にitemがあった場合に文字が反映されるような条件分岐は上記のようになります。

商品詳細画面

詳細画面における「購入ボタン」「削除ボタン」「編集ボタン」の表示の条件分岐にも同じように記載します。

<% unless @item.order %> 
      <% if user_signed_in? %>
        <% if current_user == @item.user %>
          <%= link_to "商品の編集", edit_item_path(@item), method: :get, class: "item-red-btn" %>
          <p class="or-text">or</p>
          <%= link_to "削除", item_path(@item.id), data: {turbo_method: :delete}, class:"item-destroy" %>
        <% else %>
          <%= link_to "購入画面に進む", item_orders_path(@item.id), data: { turbo: false }, class:"item-red-btn"%>
        <% end %>
      <% end %>
    <% end %> 

上記の解説としては、

商品が購入されているかどうか

ユーザーがログインしているかどうか

・ログインしているユーザーと出品者が同じ場合、編集ボタンと削除ボタンを表示する
・そうでない場合は購入ボタンを表示する
の条件分岐です。

の順番で記述しています。

今回は以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?