Подтвердить что ты не робот

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?

4b9b3361

Ответ 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, он добавляет фильтр перед очередью. Следовательно, последний раз, сначала служил.