Nos trilhos> 4.0.0, os geradores criam operações CRUD before_action
sem before_filter
. Parece fazer a mesma coisa. Então, qual é a diferença entre esses dois?
Nos trilhos> 4.0.0, os geradores criam operações CRUD before_action
sem before_filter
. Parece fazer a mesma coisa. Então, qual é a diferença entre esses dois?
Respostas:
Como podemos ver na ActionController::Base
, before_action
é apenas uma nova sintaxe para before_filter
.
No entanto, todas as before_filters
sintaxes foram descontinuadas no Rails 5.0 e serão removidas no Rails 5.1
É apenas uma diferença de sintaxe, no aplicativo Rails existe CRUD e sete ações basicamente por índice de nomes , novo , criar , mostrar , atualizar , editar , destruir .
O Rails 4 torna o desenvolvedor amigável para alterar a sintaxe antes do filtro para a ação anterior .
método de chamada before_action antes das ações que declaramos, como
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event é um método que chamará sempre antes de mostrar, atualizar, editar e destruir.
before_filter / before_action: significa qualquer coisa a ser executada antes de qualquer ação ser executada.
Ambos são iguais. eles são apenas apelidos um para o outro, pois seu comportamento é o mesmo.
Para descobrir qual é a diferença entre before_action e before_filter, devemos entender a diferença entre ação e filtro.
Uma ação é um método de um controlador para o qual você pode rotear. Por exemplo, sua página de criação de usuário pode ser roteada para UsersController # new - new é a ação nessa rota.
Os filtros são executados em relação às ações do controlador - antes, depois ou ao redor deles. Esses métodos podem interromper o processamento da ação redirecionando ou configurando dados comuns para todas as ações no controlador.
Trilhos 4 -> _action
Trilhos 3 -> _filter