ユーザー編集エラー時の処理作成
ユーザー編集エラー時の処理を作成します。
以下、「Ruby on Rails Tutorial」の9章を参考に行います。
参考資料ページの6.参照
●ユーザー編集のHTMLの確認
●ルート設定の確認
●Usersコントローラに"update"アクション追加
上記より、ユーザー編集フォームで実行ボタンが押下されると、"hidden"タイプで送信され、Usersコントローラの"update"アクションで処理します。
$ vi app/controllers/users_controller.rb
user.update_attributesの引数は、mass assignmentの脆弱性を防ぐためストロングパラメータを使って定義した"user_params"を使用しています。
●ユーザー編集エラー時のエラーメッセージ
ユーザー編集ビューには下記のようにエラーメッセージ表示のパーシャルを設定しています。
$ vi app/views/users/edit.html.erb
<%= render 'shared/error_messages' %>
参考資料ページの6.参照
●ユーザー編集のHTMLの確認
<form action="/users/13" class="edit_user" id="edit_user_13" method="post">
:
<input name="_method" type="hidden" value="patch" />
●ルート設定の確認
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
●Usersコントローラに"update"アクション追加
上記より、ユーザー編集フォームで実行ボタンが押下されると、"hidden"タイプで送信され、Usersコントローラの"update"アクションで処理します。
$ vi app/controllers/users_controller.rb
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
# Handle a successful update.
else
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
user.update_attributesの引数は、mass assignmentの脆弱性を防ぐためストロングパラメータを使って定義した"user_params"を使用しています。
●ユーザー編集エラー時のエラーメッセージ
ユーザー編集ビューには下記のようにエラーメッセージ表示のパーシャルを設定しています。
$ vi app/views/users/edit.html.erb
<%= render 'shared/error_messages' %>
| アプリ作成 | 12:45 | comments:0 | trackbacks:0 | TOP↑