Ruby on Rails, before_filter и prepend_before_filter?
В следующем примере
before_filter :foo
before_filter :bar
before_filter :wah
prepend_before_filter :heehee
prepend_before_filter :haha
поэтому заказы выполнения будут:
haha, heehee, foo, bar, wah? <-- note that haha is actually before heehee
И есть ли причина не перечислять haha
и heehee
сначала, но на самом деле использовать prepend
?
Ответы
Ответ 1
Насколько я знаю, это решение наследования классов, где вы не можете определить порядок before_filter:
ApplicationController < ActionController::Base
before_filter :do_this_first
#....
end
SomeController < ApplicationController
before_filter :do_this_second
#....
end
Здесь ни один из указанных методов не будет иметь предпочтения, если вы не используете prepend_before_filter.
Ответ 2
Похоже, prepend_filter
, в очереди before_filter
s, он добавляет фильтр перед очередью. Следовательно, последний раз, сначала служил.