Adam Lombard
Posted on September 10, 2018
In Ruby, a method provides functionality to an Object. A class method provides functionality to a class itself, while an instance method provides functionality to one instance of a class.
Consider the following Ruby class:
class SayHello
def self.from_the_class
"Hello, from a class method"
end
def from_an_instance
"Hello, from an instance method"
end
end
This would yield the following:
>> SayHello.from_the_class
=> "Hello, from a class method"
>> SayHello.from_an_instance
=> undefined method `from_an_instance' for SayHello:Class
>> hello = SayHello.new
>> hello.from_the_class
=> undefined method `from_the_class' for #<SayHello:0x0000557920dac930>
>> hello.from_an_instance
=> "Hello, from an instance method"
We cannot call an instance method on the class itself, and we cannot directly call a class method on an instance.
Railstips has a nice article with more detail and a discussion of alternative ways of creating both class methods and instance methods.
Was this helpful? Did I save you some time?
🫖 Buy Me A Tea! ☕️
💖 💪 🙅 🚩
Adam Lombard
Posted on September 10, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
rails Transaction Safety in Rails: Identifying and Addressing Non-Atomic Interactions
November 21, 2024