deviseでユーザー編集機能を作るときはストロングパラメーターの設定をお忘れなく

56日目です。

本日犯したミス

  1. ユーザー(プロフィール)編集機能を作成
  2. 編集して更新ボタンを押したにも関わらず更新されず(サインアップ時の情報と変わらず)

これは、deviseで「メールアドレスとパスワード」だけはデフォルトでストロングパラメーターが設定されているのですが、
それ以外の情報(例えばnameなど)を登録する際は、自分でストロングパラメーターを設定する必要があります。

今回、新規ユーザー情報作成(サインアップ)機能をつけた際には、自分でストロングパラメーターを設定していたのですが、ユーザー編集機能をつけた際にも設定しなければいけないことを知らず、「更新ボタンを押しても更新されない」という事態に陥ってしまいました。

※deviseの導入や新規ユーザー情報作成(サインアップ)のところは下記の記事をご参考ください。

deviseを使う際の初期設定 - tattaka_s’s blog

ストロングパラメーターの設定方法

application_controller.rbに「account_update」の行の記述を追記
(今回は、メール、パスワードに加えて、「name」「avatar」「 place」を設定していました)

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :avatar, :place])
    devise_parameter_sanitizer.permit(:account_update, keys: [:name, :avatar, :place])
  end
end

下記の記事がとても参考になりました。

devise導入からユーザーのプロフィール画面を作成するまで - Qiita


本日個人アプリ制作3日目でした。
ユーザー編集機能の実装後、ユーザー検索機能を付けようとするも、とりあえず見辛い検索フォームができただけで検索は機能せず、、
そんなこんなしているうちに「あれ?アプリとして必要な機能実装できてなくね?」と気づき焦るもタイムオーバー、、

下記の工程が大切だと気づきました。

  1. 最低限つけなくてはならない機能の洗い出し
  2. どの機能にどれだけ時間がかかるか予測を立てる
  3. 優先順位をつける
  4. 実装
  5. 必要ではないが、実装したらユーザビリティがよくなるであろう機能を洗い出す
  6. どの機能にどれだけ時間がかかるか予測を立てる
  7. 優先順位をつける
  8. 実装

残り4日ですが楽しむことを一番に作っていきます!!