2012-05-06 24 views
6

Tôi đang sử dụng Ruby on Rails 3.2.2 và, để hiển thị thông báo cảnh báo cho mục đích phát triển, tôi đang sử dụng logger.warn trong mã của mình. Tôi muốn truy xuất tên phương thức trong đó logger.warn chạy để xuất tên phương thức đó thành tệp nhật ký.Làm thế nào để lấy tên phương thức hiện tại để xuất nó vào tệp nhật ký?

class ClassName < ActiveRecord::Base 
    def method_name 
    # Note: This code doesn't work. It is just a sample. 
    logger.warn "I would like to retrieve and display the #{self.class.to_s}##{method_name}" 
    end 
end 

Trong log file tôi muốn xem:

Tôi muốn lấy và hiển thị ClassName # method_name

Có thể? Nếu vậy, làm thế nào tôi có thể làm điều đó?

+1

có thể trùng lặp của [Nhận tên của phương pháp hiện đang thực hiện trong Ruby] (http://stackoverflow.com/questions/199527/get-the-name-of-the-currently-executing-method-in-ruby) –

Trả lời

23
class ClassName < ActiveRecord::Base 
def method_name 
    logger.warn "I would like to retrieve and display the #{self.class.to_s}##{__method__.to_s}" 
end 
end 

việc này sẽ thực hiện công việc.

+1

Các cuộc gọi '.to_s' là thừa. Nội suy sẽ tự động gọi 'to_s'. – Pistos

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