前提・実現したいこと
現在フリマアプリのダミーを作っているプログラミング初心者です。
商品を出品するときに、submitを押すとerrorになって、No route matches [POST] "/items/new"となります。ですが、ルーティングにはresoucesで書いてあるので、何故errorになるのかよくわかっていません。
発生している問題・エラーメッセージ
Routing Error No route matches [POST] "/items/new" Routes Routes match in priority from top to bottom
該当のソースコード
ruby
1#new.html.erb 2 3<div class="items-sell-contents"> 4 <header class="items-sell-header"> 5 <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %> 6 7 </header> 8 <div class="items-sell-main"> 9 <h2 class="items-sell-title">商品の情報を入力</h2> 10 <%= form_with local: true do |f| %> 11 12 <%# インスタンスを渡して、エラー発生時にメッセージが表示されるようにしましょう。%> 13 <%= render 'shared/error_messages', model: f.object %> 14 <%# //インスタンスを渡して、エラー発生時にメッセージが表示されるようにしましょう。%> 15 16 <%# 出品画像 %> 17 <div class="img-upload"> 18 <div class="weight-bold-text"> 19 出品画像 20 <span class="indispensable">必須</span> 21 </div> 22 <div class="click-upload"> 23 <p> 24 クリックしてファイルをアップロード 25 </p> 26 <%= f.file_field :image, id:"item-image" %> 27 </div> 28 </div> 29 <%# /出品画像 %> 30 <%# 商品名と商品説明 %> 31 <div class="new-items"> 32 <div class="weight-bold-text"> 33 商品名 34 <span class="indispensable">必須</span> 35 </div> 36 <%= f.text_area :item_name, class:"items-text", id:"item-name", placeholder:"商品名(必須 40文字まで)", maxlength:"40" %> 37 <div class="items-explain"> 38 <div class="weight-bold-text"> 39 商品の説明 40 <span class="indispensable">必須</span> 41 </div> 42 <%= f.text_area :text, class:"items-text", id:"item-info", placeholder:"商品の説明(必須 1,000文字まで)(色、素材、重さ、定価、注意点など)例)2010年頃に1万円で購入したジャケットです。ライトグレーで傷はありません。あわせやすいのでおすすめです。" ,rows:"7" ,maxlength:"1000" %> 43 </div> 44 </div> 45 <%# /商品名と商品説明 %> 46 47 <%# 商品の詳細 %> 48 <div class="items-detail"> 49 <div class="weight-bold-text">商品の詳細</div> 50 <div class="form"> 51 <div class="weight-bold-text"> 52 カテゴリー 53 <span class="indispensable">必須</span> 54 </div> 55 <%= f.collection_select(:genre_id, Genre.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %> 56 <div class="weight-bold-text"> 57 商品の状態 58 <span class="indispensable">必須</span> 59 </div> 60 <%= f.collection_select(:status_id, Status.all, :id, :name, {}, {class:"select-box", id:"item-sales-status"}) %> 61 </div> 62 </div> 63 <%# /商品の詳細 %> 64 65 <%# 配送について %> 66 <div class="items-detail"> 67 <div class="weight-bold-text question-text"> 68 <span>配送について</span> 69 <a class="question" href="#">?</a> 70 </div> 71 <div class="form"> 72 <div class="weight-bold-text"> 73 配送料の負担 74 <span class="indispensable">必須</span> 75 </div> 76 <%= f.collection_select(:delivery_id, Delivery.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %> 77 <div class="weight-bold-text"> 78 発送元の地域 79 <span class="indispensable">必須</span> 80 </div> 81 <%= f.collection_select(:shipping_area_id, ShippingArea.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %> 82 <div class="weight-bold-text"> 83 発送までの日数 84 <span class="indispensable">必須</span> 85 </div> 86 <%= f.collection_select(:shipping_date, ShippingDate.all, :id, :name, {}, {class:"select-box", id:"item-scheduled-delivery"}) %> 87 </div> 88 </div> 89 <%# /配送について %> 90 91 <%# 販売価格 %> 92 <div class="sell-price"> 93 <div class="weight-bold-text question-text"> 94 <span>販売価格<br>(¥300〜9,999,999)</span> 95 <a class="question" href="#">?</a> 96 </div> 97 <div> 98 <div class="price-content"> 99 <div class="price-text"> 100 <span>価格</span> 101 <span class="indispensable">必須</span> 102 </div> 103 <span class="sell-yen">¥</span> 104 <%= f.text_field :price, class:"price-input", id:"item-price", placeholder:"例)300" %> 105 </div> 106 <div class="price-content"> 107 <span>販売手数料 (10%)</span> 108 <span> 109 <span id='add-tax-price'></span>円 110 </span> 111 </div> 112 <div class="price-content"> 113 <span>販売利益</span> 114 <span> 115 <span id='profit'></span>円 116 </div> 117 </span> 118 </div> 119 </div> 120 <%# /販売価格 %> 121 122 <%# 注意書き %> 123 <div class="caution"> 124 <p class="sentence"> 125 <a href="#">禁止されている出品、</a> 126 <a href="#">行為</a> 127 を必ずご確認ください。 128 </p> 129 <p class="sentence"> 130 またブランド品でシリアルナンバー等がある場合はご記載ください。 131 <a href="#">偽ブランドの販売</a> 132 は犯罪であり処罰される可能性があります。 133 </p> 134 <p class="sentence"> 135 また、出品をもちまして 136 <a href="#">加盟店規約</a> 137 に同意したことになります。 138 </p> 139 </div> 140 <%# /注意書き %> 141 <%# 下部ボタン %> 142 <div class="sell-btn-contents"> 143 <%= f.submit "出品する" ,class:"sell-btn" %> 144 <%=link_to 'もどる', root_path, class:"back-btn" %> 145 </div> 146 <%# /下部ボタン %> 147 </div> 148 <% end %> 149 150 <footer class="items-sell-footer"> 151 <ul class="menu"> 152 <li><a href="#">プライバシーポリシー</a></li> 153 <li><a href="#">フリマ利用規約</a></li> 154 <li><a href="#">特定商取引に関する表記</a></li> 155 </ul> 156 <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %> 157 <p class="inc"> 158 ©︎Furima,Inc. 159 </p> 160 </footer> 161</div>
ruby
1#items_controller.rb 2 3class ItemsController < ApplicationController 4 before_action :move_to_index, except: [:index, :show] 5 6 def index 7 end 8 9 def new 10 @item = Item.new 11 end 12 13 def create 14 @item = Item.new(item_params) 15 if @item.save 16 redirect_to root_path 17 else 18 render :new 19 end 20 end 21 22 private 23 24 def item_params 25 params.require(:item).permit(:item_name, :price, :detail, :genre_id, :status_id, :delivery_id, :shipping_area_id, :shipping_date_id) 26 end 27 28 def move_to_index 29 redirect_to action: :index unless user_signed_in? 30 end 31end
ruby
1#routes.rb 2 3Rails.application.routes.draw do 4 root to: 'items#index' 5 devise_for :users 6 resources :items 7 # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html 8end
試したこと
まだまだ本を見ながらやっている状態の初心者なので、詳しく教えていただけると助かります。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
>本を見ながらやっている
念のため書籍名と版も提示してください
あと、バージョンなどの環境情報も
あなたの回答
tips
プレビュー