rails 技術ブログ

rails 技術ブログ

勉強したことをアウトプットしていきます

アクション、メソッド メモ

・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を用いると文字列を数値に変換してくれる