質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

761閲覧

ルーティングエラーについて

yu-kou

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2021/03/31 09:49

前提・実現したいこと

create へのルーティングができればと思っております。
railsでフリマアプリの作成
情報を入力した後、出品ボタンで保存できなければサイド出品投稿画面へ遷移できればと思っていますが、遷移せず下記のエラーが発生しています。

発生している問題・エラーメッセージ

No route matches [POST] "/items/new"

該当のソースコード

Rails.application.routes.draw do devise_for :users # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html root to: "items#index" resources :items end
class ItemsController < ApplicationController before_action :authenticate_user!, except: [:index] def index @items = Item.all end def new @item = Item.new end def create @item = Item(item_params) if @item.save redirect_to root_path(@item) else render :new end end private def item_params params.require(:item).permit(:category_id,:condition_id,:charge_id,:delivery_time_id,:area_id,:price,:image) end end
<div class="sell-btn-contents"> <%= f.submit "出品する" , class:"sell-btn" %> <%=link_to 'もどる', root_path, class:"back-btn" %> </div>

試したこと

permitなどの条件の調整。

補足情報(FW/ツールのバージョンなど)

ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin20]
gem 3.0.3
Rails 6.0.3.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2021/03/31 13:27

view new を全部のせて
yu-kou

2021/04/01 09:54

ご回答ありがとうございます。 ご指摘の部分で対応するfome_withにモデルを記述することで解決できました。
guest

回答2

0

自己解決

<div class="items-sell-contents"> <header class="items-sell-header"> <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %> </header> <div class="items-sell-main"> <h2 class="items-sell-title">商品の情報を入力</h2> <%= form_with model:** @item**,--- local: true do |f| %>
<%# render 'shared/error_messages', model: f.object %> <%# 出品画像 %> <div class="img-upload"> <div class="weight-bold-text"> 出品画像 <span class="indispensable">必須</span> </div> <div class="click-upload"> <p> クリックしてファイルをアップロード </p> <%= f.file_field :image, id:"item-image" %> </div> </div> <%# /出品画像 %> <%# 商品名と商品説明 %> <div class="new-items"> <div class="weight-bold-text"> 商品名 <span class="indispensable">必須</span> </div> <%= f.text_area :item_name, class:"items-text", id:"item-name", placeholder:"商品名(必須 40文字まで)", maxlength:"40" %> <div class="items-explain"> <div class="weight-bold-text"> 商品の説明 <span class="indispensable">必須</span> </div> <%= f.text_area :introduction, class:"items-text", id:"item-info", placeholder:"商品の説明(必須 1,000文字まで)(色、素材、重さ、定価、注意点など)例)2010年頃に1万円で購入したジャケットです。ライトグレーで傷はありません。あわせやすいのでおすすめです。" ,rows:"7" ,maxlength:"1000" %> </div> </div> <%# /商品名と商品説明 %> <%# 商品の詳細 %> <div class="items-detail"> <div class="weight-bold-text">商品の詳細</div> <div class="form"> <div class="weight-bold-text"> カテゴリー <span class="indispensable">必須</span> </div> <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %> <div class="weight-bold-text"> 商品の状態 <span class="indispensable">必須</span> </div> <%= f.collection_select(:condition_id, Condition.all, :id, :name, {}, {class:"select-box", id:"item-sales-status"}) %> </div> </div> <%# /商品の詳細 %> <%# 配送について %> <div class="items-detail"> <div class="weight-bold-text question-text"> <span>配送について</span> <a class="question" href="#">?</a> </div> <div class="form"> <div class="weight-bold-text"> 配送料の負担 <span class="indispensable">必須</span> </div> <%= f.collection_select(:charge_id, Charge.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %> <div class="weight-bold-text"> 発送元の地域 <span class="indispensable">必須</span> </div> <%= f.collection_select(:area_id, Area.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %> <div class="weight-bold-text"> 発送までの日数 <span class="indispensable">必須</span> </div> <%= f.collection_select(:delivery_time_id, DeliveryTime.all, :id, :name, {}, {class:"select-box", id:"item-scheduled-delivery"}) %> </div> </div> <%# /配送について %> <%# 販売価格 %> <div class="sell-price"> <div class="weight-bold-text question-text"> <span>販売価格<br>(¥300〜9,999,999)</span> <a class="question" href="#">?</a> </div> <div> <div class="price-content"> <div class="price-text"> <span>価格</span> <span class="indispensable">必須</span> </div> <span class="sell-yen">¥</span> <%= f.text_field :price, class:"price-input", id:"item-price", placeholder:"例)300" %> </div> <div class="price-content"> <span>販売手数料 (10%)</span> <span> <span id='add-tax-price'></span>円 </span> </div> <div class="price-content"> <span>販売利益</span> <span> <span id='profit'></span>円 </div> </span> </div> </div> <%# /販売価格 %> <%# 注意書き %> <div class="caution"> <p class="sentence"> <a href="#">禁止されている出品、</a> <a href="#">行為</a> を必ずご確認ください。 </p> <p class="sentence"> またブランド品でシリアルナンバー等がある場合はご記載ください。 <a href="#">偽ブランドの販売</a> は犯罪であり処罰される可能性があります。 </p> <p class="sentence"> また、出品をもちまして <a href="#">加盟店規約</a> に同意したことになります。 </p> </div> <%# /注意書き %> <%# 下部ボタン %> <div class="sell-btn-contents"> <%= f.submit "出品する" , class:"sell-btn" %> <%=link_to 'もどる', root_path, class:"back-btn" %> </div> <%# /下部ボタン %>
</div> <% end %> <footer class="items-sell-footer"> <ul class="menu"> <li><a href="#">プライバシーポリシー</a></li> <li><a href="#">フリマ利用規約</a></li> <li><a href="#">特定商取引に関する表記</a></li> </ul> <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %> <p class="inc"> ©︎Furima,Inc. </p> </footer> </div>

投稿2021/04/01 09:59

yu-kou

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラー文を見る限り、newでpostはおかしいのでは?と思いました。
newのviewの全体をみないとなんとも言えませんが、下記で解決できるのではないでしょうか?

class ItemsController < ApplicationController def create @item = Item.new(item_params)

newアクションで空のインスタンスを作成しており、
createアクションでは、空のインスタンスにstrong parameterで作成したカラム情報に照らし合わせ、saveで保存するので、こういった書き方になるかと思います。(間違っていたらすいません。)

また、質問する際には、
関連しているであろう情報(今回で言う、items/new.html.erb)は、なるべく全体を乗せた方がいいかと思います!

投稿2021/04/01 09:12

tani__san929

総合スコア61

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu-kou

2021/04/01 09:56

ご回答ありがとうございます! 次回は全体を乗せてい質問させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問