ruby-on-rails - hacer - crud with ruby on rails
Rails 4: before_filter vs. before_action (5)
Como podemos see en ActionController::Base
, before_action
es solo una nueva sintaxis para before_filter
.
Sin embargo, todas before_filters
sintaxis de before_filters
están en desuso en Rails 5.0 y se eliminarán en Rails 5.1
En rieles> 4.0.0, los generadores crean operaciones CRUD con before_action
no before_filter
. Parece hacer lo mismo. Entonces, ¿cuál es la diferencia entre estos dos?
Es sólo un cambio de nombre. before_action
es más específico, porque se ejecuta antes de una acción.
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 .
Rails 4 hace que sea fácil para el desarrollador cambiar la sintaxis antes de filtrar a 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.
Para averiguar cuál es la diferencia entre before_action y before_filter, debemos entender la diferencia entre acción y filtro.
Una acción es un método de un controlador al que se puede enrutar. Por ejemplo, su página de creación de usuarios podría enrutarse a UsersController # new: nueva 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 acciones al redireccionar o configurar datos comunes para cada acción en el controlador.
Rieles 4 -> _acción
Rieles 3 -> _filter
before_filter / before_action: significa cualquier cosa que se ejecute 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.