ActiveRecord::RecordInvalid が解決できません。

実現したいこと

deviseを使って登録したユーザー情報のアイコンをデフォルトアイコンから個別設定のアイコンに更新したい。

発生している問題・分からないこと

deviseで登録したユーザー情報に画像登録後に更新しようとするとエラーが発生します。

エラーメッセージ

error

1ActiveRecord::RecordInvalid in UsersController#update 2バリデーションに失敗しました: 氏名を入力してください 3Extracted source (around line #8): 4 def update 5 @user = current_user 6 if @user.update!(current_user_params) 7 flash[:notice] = "保存しました" 8 else 9 flash[:alert] = "更新できません" 10

該当のソースコード

users_controller.rb

1class UsersController < ApplicationController 2 before_action :authenticate_user! 3 4 def dashboard 5 end 6 def update 7 @user = current_user 8 if @user.update!(current_user_params) 9 flash[:notice] = "保存しました" 10 else 11 flash[:alert] = "更新できません" 12 end 13 redirect_to dashboard_path 14 end 15 def show 16 @user = User.find(params[:id]) 17 end 18 19 private 20 def current_user_params 21 params.require(:user).permit(:self, :status, :photo, :full_name) 22 end 23end

user.rb

1class User < ApplicationRecord 2 has_many :rooms 3 4 has_one_attached :photo 5 6 validates :full_name, :email, presence: true, length: {maximum: 50} 7 8 # Include default devise modules. Others available are: 9 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 10 devise :database_authenticatable, :registerable, 11 :recoverable, :rememberable, :validatable 12end

dashboard.html.erb

1<h1>Users#dashboard</h1> 2 3<div class="container mt-4 mb-4"> 4 <div class="row"> 5 <!-- 左側 --> 6 <div class="col-md-4"> 7 <div class="card mb-4"> 8 <div class="card-body"> 9 <div class="mb-3"> 10 11 <!-- アバター この位置にアイコン表示 --> 12 <%= image_tag user_url(current_user), :size => '100x100', class: "img-fluid img-thumbnail rounded-pill" %> 13 <h4 style="margin-left: 5.5rem;"></h4> 14 15 <div class="collapse" id="collapse1"> 16 <div class="card card-body"> 17 <%= form_for :user, url: users_edit_url(current_user), action: :update, method: :post do |f| %> 18 <%= f.file_field :photo, class: "input-group-text", onchange: "this.form.submit();" %> 19 <% end %> 20 </div> 21 </div> 22 <hr/> 23

試したこと・調べたこと

上記の詳細・結果

当初はただ更新が出来ずエラーが表示されなかった為、「!」を追記して表題のエラーを表示させました。
また、strong parameterからful_nameを削っても同様のエラーが発生します。

補足

特になし

コメントを投稿

0 コメント