Filterek
Filed under Rails
Sajnos el kell térnem, a megkezdett nagy projekttől, mert azóta marha sok idő eltelt. Meg próbálok mostantól inkább több, de rövidebb postot összedobni.
Most ebben a postban a filterekről fogok beszélni.
A filterek lehetővé teszik számunkra, hogy elő- és utó- feldolgozást csináljunk. (ej de magyaros lett). Ezeket a filtereket használhatjuk authentikálásra, cachelésre, DRY-osításra, stb. A filterek effektíve hozzáférnek mindenhez, ami abban az osztályban elérhető. Van jó pár féle filter, viszont a használatuk hasnló.
Ezeket a filtereket ugye mindig az osztály deklaráció után kell megadni
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class BankController < ActionController::Base before_filter :audit private def audit # method description end end |
Ilyenkor a filter érvényes lesz minden egyes metódusra, ami az osztályban van. Ezt valahogy szűkítenünk kéne, erre van két varázs szó: only és except ezek egy-egy tömb, amikben felsoroljuk azokat a metódusokat amikre szeretnénk, hogy érvényesek legyen. Pl, ha csak az index metódusra szeretnénk, akkor
nly=> :index, ha azt szeretnénk, hogy a :foo és a :bar ne legyen benne a filterben, akkor :except=>[:foo, :bar].
class BankController < ActionController::Base
before_filter :audit,
nly=>:index
before_filter :check, :except=>[:foo, :bar]
def index
end
def foo
end
def bar
end
private
def audit
# method description
end
def check
# method description
end
end
Nagy vonalakban ennyi, persze nem csak before_filter van, hanem after_filter, prepend_before_filter, prepend_after_filter, around_filter, skip… stb.
dec25













január 10, 2009 at 9:02 du.
VISSZATÉÉÉÉRT:D