2011-06-21 15 views
5

Znalazłem następujący kod, który domyślam się, że idzie w config/initializers/kernel.rb.Jak uzyskać aktualną metodę w Rails 3?

module Kernel 
    private 
    def this_method 
    caller[0] =~ /`([^']*)'/ and $1 
    end 
end

Czy dodanie do dziennika jest preferowanym sposobem uzyskania bieżącej metody?

Dzięki.

+0

Jeśli używasz Ruby 1.9.x możesz użyć #__method__ jak np. 'Def foo; __metoda__; koniec; # => foo' – basicxman

+0

Po wywołaniu foo w tym przypadku po prostu wróci: foo –

Odpowiedz

7

To wydaje się przyzwoity sposób, aby uzyskać metodę wywoływania i daje możliwość wywołania this_method w kodzie, aby dodać do dziennika.

Jeśli używasz Ruby 1.9.2, możesz zadzwonić pod numer __method__ i nie martwić się o zdefiniowanie specjalnej metody, aby to zrobić.

Powiązane problemy