ユーザー編集エラー時の処理作成 Ruby on RailsでWebサイト公開!に挑戦中
FC2ブログ

Ruby on RailsでWebサイト公開!に挑戦中

レンタルサーバーでWebサイトを公開すべく、Ruby on Railaの勉強をする日々を語ります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

ユーザー編集エラー時の処理作成

ユーザー編集エラー時の処理を作成します。


以下、「Ruby on Rails Tutorial」の9章を参考に行います。
参考資料ページの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↑

COMMENT















非公開コメント

TRACKBACK URL

http://hbnist76.blog.fc2.com/tb.php/234-d70c30f2

TRACKBACK

PREV | PAGE-SELECT | NEXT