rails query generate ruby-on-rails before-filter

ruby on rails - query - ¿Cómo puedo especificar el orden en que before_filters se ejecutan?



rails session (4)

Before_filter Order in Rails http://b2.broom9.com/?p=806

Orden de la cadena de filtros rails.rubyonrails.org/classes/ActionController/Filters/…

Si necesita un pedido de garantía, puede hacer esto:

before_filter :fn3 def fn3 fn1 fn2 end

¿Los raíles ofrecen alguna garantía sobre el orden en que los filtros se ejecutan antes con cualquiera de los siguientes usos:

before_filter [:fn1, :fn2]

o

before_filter :fn1 before_filter :fn2

Agradecería cualquier ayuda.


La cadena de filtros para CheckoutController no sigue este orden

:ensure_items_in_cart, :ensure_items_in_stock, :verify_open_shop

En cambio, debería ser

:ensure_items_in_stock, :ensure_items_in_cart, :verify_open_shop


Si refiere http://api.rubyonrails.org/v2.3.8/classes/ActionController/Filters/ClassMethods.html , hay un subtítulo llamado "Orden de cadena de filtro", aquí está el código de ejemplo de eso:

class ShoppingController < ActionController::Base before_filter :verify_open_shop class CheckoutController < ShoppingController prepend_before_filter :ensure_items_in_cart, :ensure_items_in_stock

De acuerdo con la explicación:

La cadena de filtros para CheckoutController es ahora :ensure_items_in_cart :ensure_items_in_stock :verify_open_shop.

Entonces puede dar explícitamente el orden de la cadena de filtro de esa manera.


por lo que puedo decir, pones la primera función que quieres ejecutar y demás.

Entonces, algo como:

before_filter :fn1, :fn2 def fn1 puts ''foo'' end def fn2 puts ''bar'' end

Ejecutaría fn1 , luego fn1 .

Espero que ayude.