ユーザ管理機能 カラム&ビュー編

どうもバンバンです。
今回はRailsでユーザー管理機能を実装する方法を復習を兼ねて 残していこうと思います。
ユーザ管理機能は全部書くと長くなるので何編かに分けて投稿していきます。
 
はじめに
前回 導入とファイルの配置が完了したので
DBへの保存方法とログイン状態によって表示させるページを切り替える方法をご紹介します。
 
用語集
before_action
コントローラで定義されたアクションが実行される前に
共通の処理を行うことができる
class コントローラ名 < ApplicationController
 
before_action :処理させたいメソッド名

authenticate_user!メソッド

ログイン状態によって表示するページを切り替えるメソッド
 
処理が呼ばれた段階でユーザーがログインしていなければ
ユーザーをログイン画面に遷移させる機能を追加
controller/application_controller.rbにて
before_actionで呼び出す。
 
app/controllers/application_controller.rb
 
class ApplicationController < ActionController::Base
 
before_action :authenticate_user!
 
end
 
ストロングパラメーター
受け付けたパラメーターが、本当に安全なデータかどうかを検証した上で取得するための仕組み。
この仕組を使うことで意図しないデータの登録・更新を防いでくれる。
何故必要なのかをここで書き始めると横道に逸れまくるので、今回は記載しないです。また後日ブログにします。
 
configure_permitted_parametersメソッド
主にbefore_actionにて使用する
deviseでストロングパラメーターを使用する際に必要
configure_permitted_parametersのメソッド名で使用されることが多い
 
devise_parameter_sanitizer.permit(:deviseの処理名,keys:[:許可するキー])
処理に対して 指定された名前と同じキーを持つパラメーターの取得を許可するストロングパラメーター
ex)devise_parameter_sanitizer.permit(:sign_up, keys:[:name])
↑サインアップの際にnameカラムの取得を許可
 
処理名
役割
:sign_in
サインイン(ログイン)の処理を行うとき
:sign_up
サインアップ(新規登録)の処理を行うとき
:account_update
アカウント情報更新の処理を行うとき
deviseでストロングパラメーターと言えば、上記2つを覚えておく
 
手順
 
app/controllers/application_controller.rbに記載
deviseのコントローラーは編集できないので
上記コントローラーに記載する必要がある
class ApplicationController < ActionController::Base
 
before_action :authenticate_user!
処理が呼ばれた段階でユーザーがログインしていなければユーザーをログイン画面に遷移させる
end
2 before_action:configure_permitted_parameters,if: :devise_controller?と記載
↑全てのアクションが実行される前にdevise_controllerから呼び出された場合configure_permitted_parametersメソッドが呼ばれる
private
 
def configure_permitted_parameters
 
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
↑ストロングパラメーターを設定する
 
end