2011-06-21 44 views
5

Tôi tìm thấy mã sau đây, mà tôi đoán đi trong config/initializers/kernel.rb.Làm thế nào để có được phương pháp hiện tại trong Rails 3?

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

Để thêm vào nhật ký, đây có phải là cách ưa thích để lấy phương pháp hiện tại không?

Cảm ơn.

+0

Nếu sử dụng Ruby 1.9.x, bạn có thể sử dụng #__method__ như vậy 'def foo; __phương pháp__; kết thúc; # => foo' – basicxman

+0

Khi bạn gọi foo trong trường hợp đó, nó sẽ đơn giản trở lại: foo –

Trả lời

7

Điều đó có vẻ giống như một cách phù hợp để có được phương pháp gọi điện thoại và cung cấp cho bạn khả năng gọi this_method trong mã của bạn để thêm vào nhật ký.

Nếu bạn đang sử dụng Ruby 1.9.2, bạn có thể gọi __method__ thay vào đó và không phải lo lắng về việc xác định một phương pháp đặc biệt để làm như vậy.

Các vấn đề liên quan