2011-02-14 32 views

cevap

144

around_* geri çağrılar yield kendisine, daha sonra yürütülmesine devam, o zaman, önce harekete çağrılır. o around

sipariş yüzden adı böyle gider var: before, around, after.

Yani, tipik bir around_save şu şekilde görünecektir:

def around_save 
    #do something... 
    yield #saves 
    #do something else... 
end 
+4

mantıklı Yani. Teşekkürler! – gjb

86

around_ * geri arama eylemi etrafında ve before_ * ve after_ * eylemler içine denir. Örneğin:

class User 
    def before_save 
    puts 'before save' 
    end 

    def after_save 
    puts 'after_save' 
    end 

    def around_save 
    puts 'in around save' 
    yield # User saved 
    puts 'out around save' 
    end 
end 

User.save 
    before save 
    in around save 
    out around save 
    after_save 
=> true 
+9

Benim için bu en _illuminating_ cevabı. Teşekkürler arkadaşım. –

İlgili konular