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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1886閲覧

【ルーティングエラー】No route matches [PATCH] "/tasks/1/edit"

takuya861

総合スコア14

Ruby on Rails 5

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/09/27 13:41

前提・実現したいこと

タスク管理サービスを作成しているのですが、作成したタスクを編集画面で編集しようとするとエラーが発生します。

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

No route matches [PATCH] "/tasks/1/edit"

該当のソースコード

routes.rb

Rails.application.routes.draw do devise_for :users,controllers: { registrations: 'registrations' } root 'homes#index' get '/groups' , to: 'groups#index' get 'users/member', to: 'users#member' resources :tasks do collection do get 'search' end end resources :users resources :categories do collection do get 'search' end end end

edit.html.erb

<main class="py-4" id="main-content"> <div class="container gt-main-container"> <div class="row justify-content-center"> <div class="col-md-11 body-frame"> <div class="card"> <div class="card-header bg-primary text-white font-weight-bold">登録情報の更新</div> <div class="card-body"> <form method="POST" class="ajax-form" id="ajaxForm"> <input type="hidden" name="_token"> <input type="hidden" name="method" valie="post"> <%= form_with model: @task, local: true do |f| %> <div class="form-group"> <%= f.label :task_name, "タスク名", class: "control-label" %> <span class="badge badge-danger">必須</span> <%= f.text_field :task_name, class: "form-control" %> </div> <div class="form-group"> <%= f.label :users_name, "担当者", class: "control-label" %> <span class="badge badge-danger">必須</span> <%= f.text_field :task, class: "form-control" %> </div> <div class="form-group"> <%= f.label :temp_memo, "継続的なメモ", class: "control-label" %> <%= f.text_field :temp_memo, class: "form-control" %> <small type="text" id="memo" class="form-text text-muted"> この欄の内容が更新されない限り、タスクが更新されても内容は変化しません。「40%完了」のようなメモを書くのに適しています。タスク名の後に表示されます。12文字以内。 </small> </div> <div class="form-group"> <%= f.label :end_date, "期日", class: "control-label" %> <div class="input-group"> <%= f.date_field :end_date, class: "flatpickr-input form-control" %> <div class="input-group-append flatpickr-clear-button"> <span class="input-group-text"> <i class="fa fa-times text-danger"></i> </span> </div> </div> </div> <div class="form-group"> <%= f.label :priority, "優先度", class: "control-label" %> <%= f.select :priority, [['高い',1], ['普通',2], ['低い',3]], { selected: 2}, { class: "form-control"} %> </div> <div class="form-group"> <%= f.label :status, "ステータス", class: "control-label" %> <span class="badge badge-danger">必須</span> <%= f.select :status, [['進行中',1], ['終了',2], ['保留',3]], { selected: 1}, { class: "form-control"} %> </div> <div class="form-group"> <%= f.label :start_date, "開始日", class: "control-label" %> <div class="input-group"> <%= f.date_field :start_date, value: Date.today, class: "flatpickr-input form-control" %> <div class="input-group-append flatpickr-clear-button"> <span class="input-group-text"> <i class="fa fa-times text-danger"></i> </span> </div> </div> <small id="start_dateHelp" class="form-text text-muted">未入力の場合は、本日の日付が設定されます。</small> </div> <div class="form-group"> <%= f.label :cont_memo, "一時的なメモ", class: "control-label" %> <%= f.text_field :cont_memo, class: "form-control" %> <small id="tmp_memoHelp" class="form-text text-muted">タスクが更新されると上書きされます。「5分仕事」のようなメモを書くのに適しています。タスク名の前に表示されます。12文字以内。</small> </div> <div class="form-group"> <%= f.label :is_cron, "このタスクは繰り返し実行されますか?", class: "control-label" %> <span class="badge badge-danger">必須</span> <%= f.select :is_cron, [['はい', 1], ['いいえ', 2]], { selected: 2}, { class: "form-control"} %> <small id="is_cronHelp" class="form-text text-muted">「はい」を選択すると、タスクが終了したときに、同じ内容のタスクが新規に作成されます。</small> </div> <div class="form-group"> <%= f.label :is_share, "このカテゴリに属するメンバー共有のタスクとしますか?", class: "control-label" %> <span class="badge badge-danger">必須</span> <%= f.select :is_share, [['はい', 1], ['いいえ', 2]], { selected: 2}, { class: "form-control"} %> <small id="is_shareHelp" class="form-text text-muted">「はい」を選んだ場合、通常のタスクと違い、子タスクはカテゴリに参加するメンバーであれば作ることができるようになります。(メールやSlackなどの通知は行われません。)また、参加メンバーのダッシュボードに常時表示されるようになります。</small> </div> <div class="form-group"> <%= f.submit '登録', class: "btn btn-primary" %> </div> <% end %> </form> </div> </div> </div> </div> </div> </main>

tasks_controller.rb

class TasksController < ApplicationController def index @tasks = Task.all end def new @task = Task.new end def destroy @task = Task.find(params[:id]) @task.destroy redirect_to tasks_path end def edit @task = Task.find(params[:id]) end def update @task = Task.find(params[:id]) if @task.update(task_params) redirect_to tasks_path end end def search @tasks = Task.where("task_name LIKE ?", "%#{params[:keyword]}%") respond_to do |format| format.html format.json { render json: @tasks } end end private def task_params params.require(:task).permit(:id, :task_users_id, :task_name, :cont_memo, :is_cron, :is_share) end end

試したこと

updateアクションの見直し
edit.html.erbの見直し

どれもおかしい箇所を見つけられなかったので質問させていただきます。
回答いただけると幸いです。

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

Rails 5.2.4.2

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

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

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

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

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

guest

回答1

0

自己解決

<form>タグが余計でした。 簡単な見落としをしていました。。。

投稿2020/09/28 13:33

takuya861

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問