kobasaです(´ω`*)帰ってきて夕飯食べたら眠くなったので、今日は朝活に挑戦してみました!
眠いはずなのに起きられるか気になって寝れん(´・ω・`)
10時就寝?〜3時起きくらいで6時まで勉強。仕事中睡魔やばいかもw
53日目の勉強内容
before_action
コントローラーに記述しアクション実行前に指定したメソッドを実行する。
onlyオプション:指定したアクションのみ実行。共通の処理をまとめるときに使用。
exceptオプション:指定したアクションを除いて実行。indexにリダイレクトするメソッドを実行するときはexceptにindexを指定しないと無限ループする。
# 例)
before_action :set_tweet, only: [:edit, :show]
before_action :move_to_index, except: [:index, :show]
deviseのテーブルに追加したカラムがパラメータを受け取れるようにする
deviseのコントローラーはGem内にあるため直接編集できないのでapplication_controller.rbに記述する。
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
# 全てのコントローラーに処理を実行する前に指定したメソッドを実行させる。
# ifオプション :メソッド名 返り値がtrueのときのみ指定したメソッドを実行。
# devise_controller? deviseのコントローラーかどうかを判断するdeviseのヘルパーメソッド。
private
def configure_permitted_parameters
# deviseに新たに定義するメソッドの慣習名
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
# devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー(カラム名)])
end
end
deviseの処理名には下記の種類がある
:sign_in | サインイン(ログイン)処理を行うとき |
:sign_up | サインアップ(新規登録)を行うとき |
:account_update | サインアップ(新規登録)を行うとき |
コメント