アクション、メソッド メモ
・before_action
各コントローラの全アクションで共通する処理がある場合に用いる
before_action :set_current_user(全アクションで共通する処理) def アクション end def アクション end ・ ・ ・ def set_current_user @current_user = User.find_by(id: params[:id]) end
※特定のアクションにのみ適用したい場合は
before_action :set_current_user {only: [:new, :edit]}
このように{only: [:アクション名]}
とする
・forbid_login_userメソッド
ログインユーザがアクセスできないページに用いる
def forbid_login_user if @current.user flash[:notice] = "既にログインしています" end
・ensure_correct_userメソッド
正しいユーザーかを確かめるという意味。ログイン中のユーザーのidと編集したいユーザーidが正しいか確かめる時に用いる
def ensure_correct_user if @current_user.id != params[:id].to_i flash[:notice] = "権限がありません" end
・to_iメソッド
文字列を数値に変換することができる
@current_user.id != params[:id].to_i
↑paramsで受け取れる値は文字列だが、.to_i
を用いると文字列を数値に変換してくれる