Відповіді:
Як ми бачимо в ActionController::Base
, before_action
це лише новий синтаксис для before_filter
.
Однак усі before_filters
синтаксиси застаріли в Rails 5.0 і будуть видалені в Rails 5.1
Це просто різниця в синтаксисі, в додатку rails є CRUD, і сім дій в основному за індексом імен , нове , створення , показ , оновлення , редагування , знищення .
Rails 4 дозволяє розробнику зручно змінювати синтаксис перед фільтруванням до дії .
перед тим, як запустити метод виклику перед діями, які ми заявляємо, як
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event - це метод, який зателефонує завжди до показу, оновлення, редагування та знищення.
before_filter / перед запуском: означає що-небудь виконати перед виконанням будь-якої дії.
Обидва однакові. вони просто псевдонім один для одного, оскільки їх поведінка однакова.
Щоб розібратися, в чому різниця між запусками та before_filter, нам слід зрозуміти різницю між дією та фільтром.
Дія - це метод контролера, до якого можна перейти. Наприклад, ваша сторінка створення користувачів може бути перенаправлена на UsersController # new - дія цього маршруту.
Фільтри запускаються стосовно дій контролера - до, після або навколо них. Ці методи можуть зупинити обробку дій шляхом перенаправлення або встановлення загальних даних для кожної дії в контролері.
Рейки 4 -> _дія
Рейки 3 -> _фільтр