Рельсы 4: перед фильтром против перед действием
в rails > 4.0.0 генераторы создает операции CRUD с before_action
не before_filter
. Кажется, он делает то же самое. Так в чем же разница между этими двумя?
5 ответов:
как мы можем посмотреть на
всеActionController::Base
,before_action
это просто новый синтаксис наbefore_filter
.before_filters
синтаксис не рекомендуется на рельсы 5.0 и будет удален в рельсы 5.1
это просто синтаксическая разница, в приложении rails есть CRUD, и семь действий в основном по имени индекс,новая,создать,показать,обновление,редактировать,уничтожить.
Rails 4 делает его дружественным для разработчиков, чтобы изменить синтаксис перед фильтром до до.
before_action вызов метода перед действиями, которые мы провозглашаем, как
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event Это метод, который будет вызывать всегда перед показом, обновлением, редактированием и уничтожением.
чтобы выяснить, в чем разница между before_action и before_filter, мы должны понять разницу между действием и фильтром.
действие-это метод контроллера, к которому вы можете направить маршрут. Например, ваша страница создания пользователя может быть перенаправлена на UsersController#new-new-это действие в этом маршруте.
фильтры работают в отношении действий контроллера - до, после или вокруг них. Эти методы могут остановить обработку действия путем перенаправления или настроить общие данные для каждого действия в контроллере.
рельсы 4 –> _action
рельсы 3 –> _filter