레일> 4.0.0 생성기와 CRUD 작업을 생성 before_action
하지 before_filter
. 같은 일을하는 것 같습니다. 이 둘의 차이점은 무엇입니까?
답변
우리가 할 수있는 볼 에 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 / before_action : 액션이 실행되기 전에 실행될 것을 의미합니다.
둘 다 동일합니다. 그들의 행동이 동일하기 때문에 그들은 서로 별명입니다.
답변
before_action과 before_filter의 차이점을 파악하려면 action과 filter의 차이점을 이해해야합니다.
동작은 라우팅 할 수있는 컨트롤러의 방법입니다. 예를 들어, 사용자 작성 페이지가 UsersController # new로 라우트 될 수 있습니다. new는이 라우트의 조치입니다.
필터는 컨트롤러 동작과 관련하여 전, 후 또는 주변에서 실행됩니다. 이러한 메소드는 공통 데이터를 컨트롤러의 모든 조치로 경로 재 지정하거나 설정하여 조치 처리를 중지 할 수 있습니다.
레일 4 –> _action
레일 3 –> _filter