2016-04-07 9 views
0

Filtre öncesi uygulama denetleyicisi ve filtrelerden önce Kullanıcı denetleyicisi arasında filtrelerden önce yürütülme dizisi hakkında kafam karıştı. Kapsam denetleyicisinin ve uygulama denetleyicisinin filtrelerinden önce önceliği belirleme

class ApplicationController < ActionController::Base 
    befor_filter :check_me 

    def check_me 
    puts "checked!" 
    end 
end 


class UsersController < ApplicationController 
    before_filter :authenticate_user! 
end 

Ben check_me ve sonra authenticate_user! yürütmek gerektiğini düşündüm. Ama değil. Burada doğru dizi nedir?

cevap

1

Geri aramalar, hiyerarşiye girerken eklenir.

Bu, önce UsersController geri aramalarının göründüğünü ve sonra ApplicationController anlamına gelir.

yürütme dizisi olacaktır: Eğer öncelik değiştirmek istiyorsanız, o zaman prepend_before_filter eklemek

  1. authenticate_user!
  2. check_me

.

Örnek: prepend_befor_filter :check_me

bakın: What order do before filters occur in?

+0

teşekkür ederiz. Ama benim durumum 'prepend_befor_filter' çalışma değildi. –

+0

yerine 'prepend_before_action' kullanmayı deneyin. Prepend_before_filter' için kullanımdan kaldırma notu: https://github.com/josevalim/rails-footnotes/issues/141 – dp7

İlgili konular