Filterek

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 :o 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, :o 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

One Response to “Filterek”

  1. VISSZATÉÉÉÉRT:D

Leave a Reply