Как я могу указать порядок, который перед выполнением фильтров?
делает ли rails какие-либо гарантии относительно порядка, который перед фильтрами выполняется с любым из следующих применений:
before_filter [:fn1, :fn2]
или
before_filter :fn1
before_filter :fn2
Я был бы признателен за любую помощь.
4 ответа:
если вы ссылаетесь http://api.rubyonrails.org/v2.3.8/classes/ActionController/Filters/ClassMethods.html, есть подзаголовок под названием "Порядок цепочек фильтров", вот пример кода из этого:
class ShoppingController < ActionController::Base before_filter :verify_open_shop class CheckoutController < ShoppingController prepend_before_filter :ensure_items_in_cart, :ensure_items_in_stock
согласно объяснения:
цепочка фильтров для
CheckoutController
теперь:ensure_items_in_cart
,:ensure_items_in_stock
,:verify_open_shop.
таким образом, вы можете явно указать порядок цепочки фильтров.
порядок Before_filter в Rails http://b2.broom9.com/?p=806
упорядочение цепочек фильтров http://rails.rubyonrails.org/classes/ActionController/Filters/ClassMethods.html
Если вам нужен гарантийный заказ, вы можете сделать это:
before_filter :fn3 def fn3 fn1 fn2 end