En rails> 4.0.0 los generadores crean operaciones CRUD con before_action
not before_filter
. Parece hacer lo mismo. Entonces, ¿cuál es la diferencia entre estos dos?
En rails> 4.0.0 los generadores crean operaciones CRUD con before_action
not before_filter
. Parece hacer lo mismo. Entonces, ¿cuál es la diferencia entre estos dos?
Respuestas:
Como podemos ver en ActionController::Base
, before_action
es solo una nueva sintaxis para before_filter
.
Sin embargo, toda la before_filters
sintaxis está en desuso en Rails 5.0 y se eliminará en Rails 5.1
Es solo la diferencia de sintaxis, en la aplicación rails hay CRUD, y siete acciones básicamente por índice de nombre , nuevo , crear , mostrar , actualizar , editar , destruir .
4 carriles que hacen desarrollador amigable a la sintaxis cambio antes del filtro de antes de la acción .
método de llamada before_action antes de las acciones que declaramos, como
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event es un método que llamará siempre antes de mostrar, actualizar, editar y destruir.
before_filter / before_action: significa cualquier cosa que se ejecutará antes de que se ejecute cualquier acción.
Ambos son lo mismo. son solo alias el uno para el otro ya que su comportamiento es el mismo.
Para descubrir cuál es la diferencia entre before_action y before_filter, debemos entender la diferencia entre action y filter.
Una acción es un método de un controlador al que puede dirigirse. Por ejemplo, su página de creación de usuarios podría enrutarse a UsersController # new: new es la acción en esta ruta.
Los filtros se ejecutan con respecto a las acciones del controlador, antes, después o alrededor de ellos. Estos métodos pueden detener el procesamiento de la acción al redirigir o configurar datos comunes para cada acción en el controlador.
Rieles 4 -> _acción
Rieles 3 -> _filtro