商品購入機能のviewsファイル

ログイン状態のユーザーが、URLを直接入力して売却済み商品の商品購入ページへ遷移しようとすると、トップページに遷移すること


```html

class ItemsController < ApplicationController
  before_action :authenticate_user!,  except: [:index]
  before_action :set_item, only: [:edit, :update, :show, :destroy]

  
  def index
    @items = Item.all.order("created_at DESC")
    
  end

  def new
    @item = Item.new
  end

  def create
    @item = Item.new(item_params)
    if @item.save
      redirect_to root_path
    else
      render :new
    end
  end

  
  def edit
  end

  def update
    if @item.save
      redirect_to item_path
    else
      render :edit
    end
  end

  def show
  end

  def destroy
    if current_user.id == @item.user_id
       @item.destroy
      end
       redirect_to root_path
  end

  private

  def item_params
    params.require(:item).permit(:name, :image, :describe, :category_id, :condition_id, :delivery_fee_id, :prefecture_id, :datetime_id, :price, :user).merge(user_id: current_user.id)
  end

  def set_item
    @item = Item.find(params[:id])
  end



end

# params {A: aa, item:{name: jj} ,B:b}
# param.require(:item).permit(:name)


```


```html

<%= render "shared/header" %>

<%# 商品の概要 %>
<div class="item-show">
  <div class="item-box">
    <h2 class="name">
      <%= @item.name %>
    </h2>
    <div class='item-img-content'>
      <%= image_tag @item.image.variant(resize: '630x500') ,class:"item-box-img" if @item.image.attached? %>
      <%# 商品が売れている場合は、sold outを表示しましょう %>
    <% if  @item.order %>
      <div class='sold-out'>
        <span>Sold Out!!</span>
      </div>
      <%end%>
      <%# //商品が売れている場合は、sold outを表示しましょう %>
    </div>
    <div class="item-price-box">
      <span class="item-price">
        ¥ <%= @item.price %>
      </span>
      <span class="item-postage">
        <%= @item.delivery_fee.name %>
      </span>
    </div>

    <%# ログインしているユーザーと出品しているユーザーが、同一人物の場合と同一人物ではない場合で、処理を分けましょう %>
  <% if user_signed_in? %>
    <% if current_user.id == @item.user_id %> 
    <%= link_to '商品の編集', edit_item_path(@item.id), method: :get, class: "item-red-btn" %> 
    <p class='or-text'>or</p> 
    <%= link_to '削除', item_path(@item.id), method: :delete, class:'item-destroy' %> 
    <% else %> 
    <%# 商品が売れていない場合はこちらを表示しましょう %>
    <%= link_to '購入画面に進む',item_orders_path(@item.id) ,class:"item-red-btn" %> 
    <%# //商品が売れていない場合はこちらを表示しましょう %>
    <% end %>
    <% end %>

    <%# //ログインしているユーザーと出品しているユーザーが、同一人物の場合と同一人物ではない場合で、処理を分けましょう %>

    <div class="item-explain-box">
      <span><%= @item.describe %></span>
    </div>
    <table class="detail-table">
      <tbody>
        <tr>
          <th class="detail-item">出品者</th>
          <td class="detail-value"><%= @item.user.nickname %></td>
        </tr>
        <tr>
          <th class="detail-item">カテゴリー</th>
          <td class="detail-value"><%= @item.category.name %></td>
        </tr>
        <tr>
          <th class="detail-item">商品の状態</th>
          <td class="detail-value"><%= @item.condition.name %></td>
        </tr>
        <tr>
          <th class="detail-item">配送料の負担</th>
          <td class="detail-value"><%= @item.delivery_fee.name %></td>
        </tr>
        <tr>
          <th class="detail-item">発送元の地域</th>
          <td class="detail-value"><%= @item.prefecture.name %></td>
        </tr>
        <tr>
          <th class="detail-item">発送日の目安</th>
          <td class="detail-value"><%= @item.datetime.name %></td>
        </tr>
      </tbody>
    </table>
    <div class="option">
      <div class="favorite-btn">
        <%= image_tag "star.png" ,class:"favorite-star-icon" ,width:"20",height:"20"%>
        <span>お気に入り 0</span>
      </div>
      <div class="report-btn">
        <%= image_tag "flag.png" ,class:"report-flag-icon" ,width:"20",height:"20"%>
        <span>不適切な商品の通報</span>
      </div>
    </div>
  </div>
  <%# /商品の概要 %>

  <div class="comment-box">
    <form>
      <textarea class="comment-text"></textarea>
      <p class="comment-warn">
        相手のことを考え丁寧なコメントを心がけましょう。
        <br>
        不快な言葉遣いなどは利用制限や退会処分となることがあります。
      </p>
      <button type="submit" class="comment-btn">
        <%= image_tag "comment.png" ,class:"comment-flag-icon" ,width:"20",height:"25"%>
        <span>コメントする<span>
      </button>
    </form>
  </div>
  <div class="links">
    <a href="#" class="change-item-btn">
      ＜ 前の商品
    </a>
    <a href="#" class="change-item-btn">
      後ろの商品 ＞
    </a>
  </div>
  <a href="#" class='another-item'><%= @item.category.name %>をもっと見る</a>
</div>

<%= render "shared/footer" %>

```
app/views/show.html.erbはitemコントローラで@itemを定義しているから、@item.orderで条件分岐する.

しかしapp/views/index.html.erbはitem.orderで定義している



```html

<%= render "shared/header" %>
<div class='main'>

  <%# 画面上部の「人生を変えるフリマアプリ」帯部分 %>
  <div class='title-contents'>
    <h2 class='service-title'>
      人生を変えるフリマアプリ
    </h2>
    <p class='service-explain'>
      FURIMAはだれでもかんたんに出品・購入できる
    </p>
    <p class='service-explain'>
      フリマアプリです
    </p>
    <div class='store-btn'>
      <%= link_to image_tag("https://linkmaker.itunes.apple.com/ja-jp/badge-lrg.svg?releaseDate=2011-09-21&kind=iossoftware&bubble=ios_apps", class:"apple-btn"), "#" %>
      <%= link_to image_tag("dl-android.png", class:"google-btn"), "#" %>
    </div>
  </div>
  <%# /画面上部の「人生を変えるフリマアプリ」帯部分  %>

  <%# FURIMAが選ばれる3つの理由部分 %>
  <div class='select-reason-contents'>
    <h2 class='title'>
      FURIMAが選ばれる3つの理由
    </h2>
    <ul class='reason-lists'>
      <li class='list'>
        <%= image_tag "furima-intro01.png", class:"list-pict" %>
        <span class='reason-list-number'>1</span>
        <h3 class='reason-list-text'>
          <span class='reason-list-blue-text'>3分</span>
          ですぐに出品
        </h3>
        <p class='reason-list-description'>
          スマホで入力するだけで簡単に出品できる！
        </p>
      </li>
      <li class='list'>
        <%= image_tag "furima-intro02.png", class:"list-pict" %>
        <span class='reason-list-number'>2</span>
        <h3 class='reason-list-text'>
          <span class='reason-list-blue-text'>シンプル</span>
          で使いやすい
        </h3>
        <p class='reason-list-description'>
          めんどくさい入力は必要なく、検索も購入もスムーズ！
        </p>
      </li>
      <li class='list'>
        <%= image_tag "furima-intro03.png", class:"list-pict" %>
        <span class='reason-list-number'>3</span>
        <h3 class='reason-list-text'>
          手数料
          <span class='reason-list-blue-text'>業界最安</span>
        </h3>
        <p class='reason-list-description'>
          10%でお得に出品&購入！
        </p>
      </li>
    </ul>
  </div>
  <%# /FURIMAが選ばれる3つの理由部分 %>

  <%# 画面中央の「会員数日本一位」帯部分 %>
  <div class='ad-contents'>
    <h2 class='ad-title'>
      会員数日本一位
    </h2>
    <p class='ad-explain'>
      FURIMAは、フリマアプリで最も人気。
    </p>
    <p class='ad-explain'>
      出品・購入回数も業界最多です！
    </p>
    <p class='ad-explain'>
      ほしかったあの商品に出会えるかもしれません。
    </p>
    <div class='store-btn'>
      <%= link_to image_tag("https://linkmaker.itunes.apple.com/ja-jp/badge-lrg.svg?releaseDate=2011-09-21&kind=iossoftware&bubble=ios_apps", class:"apple-btn"), "#" %>
      <%= link_to image_tag("dl-android.png", class:"google-btn"), "#" %>
    </div>
  </div>
  <%# /画面中央の「会員数日本一位」帯部分 %>

  <%# FURIMAの特徴 %>
  <div class='feature-contents'>
    <h2 class='title'>
      FURIMAの特徴
    </h2>
    <ul class='feature-lists'>
      <li class='list'>
        <%= image_tag "furima-intro04.png", class:"list-pict" %>
        <h3 class='feature-list-text'>
          簡単に売り買いできる
        </h3>
        <p class='feature-list-description'>
          スマホひとつで、いつでもどこでも簡単に出品・購入が可能！
        </p>
      </li>
      <li class='list'>
        <%= image_tag "furima-intro05.png", class:"list-pict" %>
        <h3 class='feature-list-text'>
          売上金は即日振込みに対応
        </h3>
        <p class='feature-list-description'>
          午前9時までに振込を依頼いただければ、翌日に指定の口座に入金いたします。
        </p>
      </li>
      <li class='list'>
        <%= image_tag "furima-intro06.png", class:"list-pict" %>
        <h3 class='feature-list-text'>
          様々な支払いに対応
        </h3>
        <p class='feature-list-description'>
          お支払いは、クレジットカードだけでなく、ポイントや売上金など多彩な方法があります。
        </p>
      </li>
    </ul>
  </div>
  <%# /FURIMAの特徴 %>

  <%# 商品一覧 %>

  <div class='item-contents'>
    
    <h2 class='title'>ピックアップカテゴリー</h2>
    <%= link_to '新規投稿商品', "#", class: "subtitle" %>
    <ul class='item-lists'>

      <%# 商品のインスタンス変数になにか入っている場合、中身のすべてを展開できるようにしましょう %>
      <% if  @items.present? %>
      <% @items.each do |item| %>
      <li class='list'>
        <%= link_to item_path(item.id) do %>
        <div class='item-img-content'>
          <%= image_tag item.image, class: "item-img" %>

          <%# 商品が売れていればsold outを表示しましょう %>
          <% if  item.order %>
          <div class='sold-out'>
            <span>Sold Out!!</span>
          </div>
          <% end %>
          <%# //商品が売れていればsold outを表示しましょう %>

        </div>
        <div class='item-info'>
          <h3 class='item-name'>
            <%= item.name %>
          </h3>
      
          <div class='item-price'>
            <span><%= item.price %>円<br><%= item.delivery_fee.name %></span>
            <div class='star-btn'>
              <%= image_tag "star.png", class:"star-icon" %>
              <span class='star-count'>0</span>
            </div>
          </div>
        </div>
      <% end %>
      </li>
    <% end %>
      <%# //商品のインスタンス変数になにか入っている場合、中身のすべてを展開できるようにしましょう %>

      <%# 商品がない場合のダミー %>
      <%# 商品がある場合は表示されないようにしましょう %>
      <% else %>
      <li class='list'>
        <%= link_to '#' do %>
        <%= image_tag "https://s3-ap-northeast-1.amazonaws.com/mercarimaster/uploads/captured_image/content/10/a004.png", class: "item-img" %>
        <div class='item-info'>
          <h3 class='item-name'>
            商品を出品してね！
          </h3>
          <div class='item-price'>
            <span>99999999円<br>(税込み)</span>
            <div class='star-btn'>
              <%= image_tag "star.png", class:"star-icon" %>
              <span class='star-count'>0</span>
            </div>
          </div>
        </div>
        <% end %>
      </li>
      <% end %>
      <%# //商品がある場合は表示されないようにしましょう %>
      <%# /商品がない場合のダミー %>
    </ul>
  </div>
  <%# /商品一覧 %>
</div>
<%= link_to(new_item_path, class: 'purchase-btn') do %>
  <span class='purchase-btn-text'>出品する</span>
  <%= image_tag 'icon_camera.png' , size: '185x50' ,class: "purchase-btn-icon" %>
<% end %>
<%= render "shared/footer" %>
```

理由は簡単。each文でitemのブロック変数を定義していて、それをファイルの中で使うから