When not to use `self.class.name`



When logging information or errors in Rails, I often want to capture the class name in the log message:

Rails.logger.info("#{self.class.name}.#{__method__} -- info message")

However, unlike an instance method, using self.class.name in a class method will return "Class" rather than the actual class name. In a class method, use self.name instead to correctly log the class name. This is because class is a method that returns the class of your Class object which is a Class. Then the name of a Class object is just Class. Hope this makes sense!

Happy coding!



Done


Leave a comment


Post


Comments

Be the first one to leave a comment!