2012-05-06 15 views
6

मैं रेलवे 3.2.2 पर रूबी का उपयोग कर रहा हूं, और विकास उद्देश्यों के लिए चेतावनी संदेश प्रदर्शित करने के लिए, मैं अपने कोड में logger.warn का उपयोग कर रहा हूं। मैं विधि नाम पुनर्प्राप्त करना चाहता हूं जिसमें logger.warn लॉग फ़ाइल में उस विधि का नाम आउटपुट करने के लिए चलाता है।वर्तमान विधि नाम को कैसे पुनर्प्राप्त करें ताकि इसे लॉगर फ़ाइल में आउटपुट किया जा सके?

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 

लॉग फ़ाइल में मैं देखना चाहेंगे:

मैं निकालते हैं और className # पद्वति

क्या यह संभव है प्रदर्शित करने के लिए चाहते हैं? यदि हां, तो मैं इसे कैसे बना सकता हूं?

+1

संभावित डुप्लिकेट [रूबी में वर्तमान में निष्पादन विधि का नाम प्राप्त करें] (http://stackoverflow.com/questions/199527/get-the-name-of-the-currently-executing-method-in-ruby) –

उत्तर

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 

यह नौकरी करना चाहिए।

+1

'.to_s' कॉल अनिवार्य हैं। इंटरपोलेशन स्वचालित रूप से 'to_s' को कॉल करेगा। – Pistos

संबंधित मुद्दे

 संबंधित मुद्दे