본문 바로가기

소프트웨어-이야기/프로그래밍 언어와 프레임워크

[RAILS]before_filter에 넘어오는 파라미터에 따라 필터 적용 여부 결정하기


만약 HelloWorld라는 컨트롤러에 before filter를 달고 싶은데, 넘어오는 파라미터에 따라 필터 적용 여부를 결정하고 싶을 때가 있다.

이 경우에는 before_filter에 block을 넣고, if 분기를 추가하면된다.

class HelloWorldController < ApplicationController
  before_filter(only: [:create]) do
    admin_log if (params[:admin_grade] == 'staff')
  end

예를 들면, admin_grade 파라미터에 넘어오는 값이 staff일 경우에만 어드민 접근 로그를 남기는 admin_log라는 함수를 사용하고 싶을 수 있다.

이 경우, 위에 처럼 before_filter block을 생성해서,  if 조건문을 추가해주면된다.



쉽 다!