ユーザー情報を更新する機能(updateアクション)を実装しています。「No route matches [POST] "/users/1"」というエラーになってしまうためこのエラーを解決したいです。
発生している問題・エラーメッセージ
Routing Error No route matches [POST] "/users/1"
該当のソースコード
routes
1Rails.application.routes.draw do 2 devise_for :users 3 root to: "top#index" 4 resources :top, only: :index 5 resources :cafeterias 6 resources :users 7end
edit
1= form_with model: @cafeteria, class: "form", url: user_path(current_user), local: true do |f| 2 = f.text_field :username, placeholder: :名前の変更, class: "form-contents" 3 = f.file_field :profile_image 4 = f.text_area :profile, placeholder: :プロフィール情報を入力してください, class: "form-detail" 5 = f.submit '完了する', class: "form-btn"
controller
1class UsersController < ApplicationController 2 def show 3 @user = User.find(params[:id]) 4 @cafeterias = @user.cafeterias 5 end 6 7 def edit 8 @user = User.find(params[:id]) 9 end 10 11 def update 12 @user = User.find(params[:id]) 13 if @user.update(user_params) 14 redirect_to user_path(@user), notice: "ユーザー情報を更新しました。" 15 else 16 render :edit 17 end 18 end 19 20 private 21 def user_params 22 params.require(:user).permit(:username, :email, :password, :password_confirmation, :profile, :profile_image ) 23 end 24 25end
試したこと
rails routesをすると、updateアクションをした際は「POST」ではなく「PATCH」を呼び込んでいるのが気になりました。
そのため、下記の記述をルーティングに追加して試しましたが何も反応しませんでした。。。
routes
1post "users/:id/update" => "users#update"
どうやってPOSTメソッドを呼び出すことができるでしょうか?よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
rails 5.2.4.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 23:00
2020/05/12 23:02