ruby on rails only Trilhos 4: before_filter vs. before_action




ruby on rails def create (4)

Nos geradores de rails> 4.0.0 cria operações CRUD com before_action não before_filter . Parece fazer a mesma coisa. Então, qual é a diferença entre esses dois?


before_filter / before_action: significa que qualquer coisa deve ser executada antes que qualquer ação seja executada.

Ambos são iguais. eles são apenas alias um para o outro, pois seu comportamento é o mesmo.


É apenas uma mudança de nome. before_action é mais específico, porque é executado antes de uma ação.


Como podemos see em ActionController::Base , before_action é apenas uma nova sintaxe para before_filter .

No entanto, todas as sintaxes do before_filters estão obsoletas no Rails 5.0 e serão removidas no Rails 5.1


Para descobrir qual é a diferença entre before_action e before_filter, devemos entender a diferença entre action e filter.

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ários pode ser roteada para UsersController # new - new é a ação nesta rota.

Os filtros são executados em relação às ações do controlador - antes, depois ou em torno delas. Esses métodos podem interromper o processamento da ação redirecionando ou configurando dados comuns para cada ação no controlador.

Trilhos 4 -> _action

Rails 3 -> _filter





crud