前提・実現したいこと
ruby on rails を使用して、レシピ共有アプリを作成中です
今回は、ユーザー情報の編集ができないので、お力をいただければ幸いです。
よろしくお願いします。
発生している問題
ユーザーの編集ページで、編集後、更新ボタンを押しても更新されない
該当のソースコード
route.rb
Rails.application.routes.draw do devise_for :users root to: 'recipes#index' resources :recipes do resources :comments, only: :create end resources :users, only: [:show, :edit, :update] end
controllers/users_controller.rb
class UsersController < ApplicationController def show @user = User.find(params[:id]) end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update(user_params) redirect_to root_path else render :edit end end private def user_params params.require(:user).permit(:nickname, :email, :name, :name_kana) end end
views/users/edit.html.erb
<%= form_with model: current_user, class: 'col-lg-4 text-center mx-auto', local: true do |f| %> 〜略〜 <% end %>
ソースコード
試したこと
controllers/users_controller.rbのbinding.pry入れたところ
11: @user = User.find(params[:id])
=> 12: binding.pry
13: if @user.update(user_params)
14: redirect_to root_path
15: else
16: render :edit
17: end
18: end
[1] pry(#<UsersController>)> params
=> <ActionController::Parameters {"_method"=>"patch", "authenticity_token"=>"2rp7haAN14MnfQY/Y9R7pShlbvbuh51cMmTTlWmENd53Gk1lO9ixayC5hxNCSasjcE8Q1GeWO+JHHiN4SrY8yA==", "user"=>{"nickname"=>"test22", "email"=>"test2@example", "name"=>"山田花子", "name_kana"=>"やまだはなこ"}, "controller"=>"users", "action"=>"update", "id"=>"2"} permitted: false>
値は、入っているみたいなので、なぜ更新できないのか、わかりません。。。
一週間くらい悩んでいます。。。どうかお力お貸しください。
回答1件
あなたの回答
tips
プレビュー