前提・実現したいこと
タスク管理サービスを作成しているのですが、作成したタスクを編集画面で編集しようとするとエラーが発生します。
発生している問題・エラーメッセージ
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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。