前提・実現したいこと
ユーザー情報の一つである「プロフィール文」の編集機能を実装したいのですが、updateアクション実行時にデータが更新されません。htmlではform_withを使用しています。(Sequel Proに「profile」カラムが存在していることは確認済みです。)
どなたかご回答頂けると幸いです。よろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ(コンソール画面) 11: def update => 12: binding.pry 13: if @user.update(user_params) 14: redirect_to user_path 15: else 16: render :edit 17: end 18: end [1] pry(#<UsersController>)> @user.update(user_params) => false
該当のソースコード
Ruby
1ソースコード 2 3[users_controller.rb] 4 5class UsersController < ApplicationController 6 before_action :in_user, only: [:show, :edit, :update] 7 8 def show 9 @cats = @user.cats 10 end 11 12 def edit 13 end 14 15 def update 16 if @user.update(user_params) 17 redirect_to user_path 18 else 19 render :edit 20 end 21 end 22 23 private 24 25 def user_params 26 params.require(:user).permit(:profile) 27 end 28 29 def in_user 30 @user = User.find(params[:id]) 31 end 32end 33
[user.rb] class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :cats validates :password, format: { with:/\A(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)[a-zA-Z\d]+\z/ } with_options presence: true do validates :nickname validates :profile end def remember_me true end end
[users/edit.html.erb] <div class="user-edit"> <div class="edit-main"> <h2 class="user-edit-title">プロフィール変更</h2> <%= form_with model:@user, local: true do |f| %> <%=f.text_area :profile, class:"user-edit-content" %> <%= f.submit "変更", class:"actions" %> <% end %> </div> </div>
試したこと
Qiitaなどで調べ、userモデルに「on::create」を記述してみたのですが、それでもダメでした。
また、プライベートメソッドの定義も間違っていないと思われます。
user_paramsには、編集後のプロフィール文が格納されていることも確かめました。
補足情報(FW/ツールのバージョンなど)
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin20]
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.6.5'
gem 'rails', '~> 6.0.0'
gem 'mysql2', '>= 0.4.4'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5'
gem 'webpacker', '> 4.0'> 5'
https://github.com/turbolinks/turbolinks
gem 'turbolinks', '
gem 'bootsnap', '>= 1.4.2', require: false
group :development, :test do
gem 'capistrano'
gem 'capistrano-rbenv'
gem 'capistrano-bundler'
gem 'capistrano-rails'
gem 'capistrano3-unicorn'
gem 'rspec-rails'
gem 'factory_bot_rails'
gem 'faker'
end
group :development do
gem 'rubocop', require: false
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
gem 'webdrivers'
end
group :production do
gem 'unicorn', '5.4.1'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'devise'
gem 'pry-rails'
gem 'mini_magick'
gem 'image_processing', '~> 1.2'
gem 'active_hash'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/15 13:01 編集
2021/07/15 13:03
2021/07/16 01:19