質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

768閲覧

rails:updateでpasswordが求められる。

Y.Arai

総合スコア42

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/10/31 12:52

railsで編集後、エラー発生

原因は、パスワードが入力されていないとエラーメッセージ

iconlabel=='new'でない時(編集)、passwordのコードは出現しないようにしている。しかし、更新を実施すると、エラー、コードはeditから下記フォームで、下記の通り

<% if user.errors.present? %> <div class="alert alert-info"> <% user.errors.full_messages.each do |message| %> <%= message %> <% end %> </div> <% end %> <%= form_with model: user, local: true do |f| %> <div class="form-group mb-3"> <%= f.label :name %> <%= f.text_field :name, class:"form-control" %> </div> <div class="form-group mb-3"> <%= f.label :idnumber %> <%= f.text_field :idnumber, class:"form-control" %> </div> <div class="form-group mb-3"> <%= f.label :email %> <%= f.text_field :email, class:"form-control" %> </div> <div class="form-group mb-3"> <%= f.label :workplace %> <%= f.text_field :workplace, class:"form-control" %> </div> <div class="form-check"> <%= f.label :admin, class:"form_check_label" do %> <%= f.check_box :admin, class:"form-check_input" %> <span>管理者チェック</span> <% end %> </div> <div class="form-check"> <%= f.label :retired, class:"form_check_label" do %> <%= f.check_box :retired, class:"form-check_input" %> <span>退職者チェック</span> <% end %> </div> <div class="form-group mb-3"> <%= f.label :image %> <%= f.file_field :image, class:"form-control" %> </div> <% if iconlabel=='new' %> <div class="form-group mb-3"> <%= f.label :password %> <%= f.password_field :password, class:"form-control" %> </div> <div class="form-group mb-3"> <%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, class:"form-control" %> </div> <% end %> <div class="d-grid gap-2 d-md-flex justify-content-md-end mb-3"> <%= f.submit nil, class:"btn btn-primary" %> </div> <% end %>

コントローラー

before_action :require_admin before_action :set_user, only: [:show, :edit, :update, :destroy] def index @q=User.all.ransack(params[:q]) @users = @q.result(distinct: true).recent.page(params[:page]).per(5) end def show end def new @user=User.new @iconlabel='new' end def edit @iconlabel=nil end def create @user=User.new(user_params) if @user.save session[:user_id]=@user.id redirect_to user_path(@user), notice: "ユーザ「#{@user.name}」を登録しました。" else flash[:alert]= 'Save error!' render :new end end def update if @user.update(user_params) redirect_to user_path(@user), notice: "ユーザ「#{@user.name}」を更新しました。" else flash[:alert]= 'Save error!' render :edit end end def destroy @user.destroy redirect_to users_path, notice: "ユーザ「#{@user.name}」を削除しました。" end private def user_params params.require(:user).permit(:name, :email, :workplace, :root, :admin, :password, :password_confirmation) end def set_user @user=User.find(params[:id]) end def require_admin redirect_to root_path unless current_user.admin? end

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

validation設定解除を忘れていました。
解決しました。
お騒がせしました。

投稿2021/11/07 12:45

Y.Arai

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問