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

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

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

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

Q&A

解決済

1回答

1297閲覧

Routing Error

kabigon

総合スコア3

Ruby on Rails

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

0グッド

0クリップ

投稿2020/05/16 14:49

編集2020/05/17 03:48

ビュー画面にテーブルの情報をリセットするボタンを作成しているのですが
なかなか削除できずにいます。
destroyアクションに記載してあるのは"消"の方のボタンで
今回実装できずにいるのは"RESET"のボタンです。

Routing Error
No route matches [POST] "/orders/destroy_all"

##controller

class OrdersController < ApplicationController def index @user_food = UserFood.new @user_foods = UserFood.all price = UserFood.sum(:price) quantity = UserFood.sum(:quantity) @total = price end def new end def create user_food = UserFood.find_by(food: params[:food]) if user_food.nil? user_food = UserFood.new(user_food_params) if user_food.save redirect_to root_path else render order: :index end else user_food.increment(quantity:1); end end def destroy order = UserFood.find(params[:id]) order.destroy redirect_to root_path end def destroy_all UserFood.destroy_all redirect_to root_path end private def user_food_params params.require(:user_food).permit(:food, :price, :quantity) end end

##index.html.haml

.right-bar .order-list - @user_foods.each do |user_food| .order-box .order-box__deta .order-box__deta--name = user_food.food .order-box__deta--number = user_food.quantity .order-box__deta--delete = link_to "消", order_path(user_food), method: :delete .reset-box = link_to "RESET", destroy_all_orders_path, method: :derete .price-box .price-box__deta .price-box__deta--yen ¥ .price-box__deta--price = @total

##Routes.rb

Rails.application.routes.draw do root "orders#index" resources :orders, only: [:index, :new, :create, :destroy,]do collection do delete 'destroy_all' end end end

##rails routes

Prefix Verb URI Pattern Controller#Action root GET / orders#index destroy_all_orders DELETE /orders/destroy_all(.:format) orders#destroy_all orders GET /orders(.:format) orders#index POST /orders(.:format) orders#create new_order GET /orders/new(.:format) orders#new order DELETE /orders/:id(.:format) orders#destroy

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

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

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

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

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

gnfreeworks

2020/05/17 01:23

テーブルの情報をリセットとは具体的にどういう意味でしょうか? データベースのテーブル内のレコードの中身をリセット(消す)という意味ですか? それとも画面上に表示されているのテーブル表の内容をリセット(空欄表示)にしたいという意味ですか? どういうシステムを作っていて、どの機能のどの部分をどうリセットしたいのか詳しく記載をお願いします。
kabigon

2020/05/17 01:53

ビュー画面で保存した商品全てが表示されるようになっています。 現在は右の"消"を押すとその商品だけ消される仕様になっております。 そして追加したいのが下のRESETを押すと上部のデータ全てが削除されるようにしたいです。 https://gyazo.com/2d2807c3eb7ccd587d4689f327afd3f0 言葉足らずですみません。
gnfreeworks

2020/05/17 02:07

表示されているのは料理のDBに入っている全データになるんでしょうか? それとも抽出してきた一部のデータになるのでしょうか? こういった疑問が次々と出てきてしまいますので、 質問をされる際は一部の機能のコードだけではなく、 全体のコードを記載された方が回答者も把握しやすいですよ。 ・Controllerファイル ・Viewファイル ・Modelファイル ・routes.rb ・画面のスクリーンショット は少なくとも記載された方が良いでしょう。 表示されている料理がDBにある全てのデータであれば、 "destroy_all"メソッドで指定したデータを一括削除できると思います。 destroyアクション内ではなく、別でdestroy_allアクションを新規で作成して処理させてもいいかもしれません。(routes.rbへのルーティング追記が必要です)
kabigon

2020/05/17 03:06

はい,質問の仕方には気をつけます! 1度新しくルーティングを作ってみます。
kabigon

2020/05/17 03:35

新しくアクションを追加してみたのですが、 "/orders/destroy_all"となります。 指定したパスは間違っていないのですがどういうことでしょうか。
guest

回答1

0

ベストアンサー

= link_to "RESET", destroy_all_orders_path, method: :derete

の最後が:dereteになってますが、正しくは:deleteですね。
これでどうでしょうか?

投稿2020/05/17 04:02

gnfreeworks

総合スコア306

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

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

kabigon

2020/05/17 04:08

無事解決することができました。 本当にありがとうございましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問