답변:
우리가 할 수있는 볼 에 ActionController::Base
, before_action
단지 인 새 구문 에 대한 before_filter
.
그러나 모든 before_filters
구문 은 Rails 5.0 에서 더 이상 사용되지 않으며 Rails 5.1 에서 제거됩니다.
그것은 단지 구문 차이이며, rails 앱에는 CRUD가 있으며 기본적으로 name index , new , create , show , update , edit , destroy로 7 가지 작업이 있습니다 .
Rails 4를 사용하면 개발자가 필터 전 구문 을 액션 전 으로 변경할 수 있습니다 .
before_action 다음 과 같이 선언 한 동작 이전에 메소드를 호출합니다.
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event 는 show, update, edit 및 destroy 전에 항상 호출하는 메소드입니다.
before_action과 before_filter의 차이점을 파악하려면 action과 filter의 차이점을 이해해야합니다.
동작은 라우팅 할 수있는 컨트롤러의 방법입니다. 예를 들어, 사용자 작성 페이지가 UsersController # new로 라우트 될 수 있습니다. new는이 라우트의 조치입니다.
필터는 컨트롤러 동작과 관련하여 전, 후 또는 주변에서 실행됩니다. 이러한 메소드는 공통 데이터를 컨트롤러의 모든 조치로 경로 재 지정하거나 설정하여 조치 처리를 중지 할 수 있습니다.
레일 4 –> _action
레일 3 –> _filter