Tell me if this seems familiar
user = User.find(1)
user.age = 11
user.save
This is a common pattern that I use often. Turns out the creators of Ruby saw this was a recurring pattern and decided to come up with the tap method. According to the Docs: The Tap method yields self to the block, and then returns self. The primary purpose of this method is to “tap into” a method chain, in order to perform operations on intermediate results within the chain.
What this means is that, the code block above can be simplified to
User.find(1).tap do |user|
user.age = 10
user.save
end
Tap will take the object it is called upon and use it in the block that follows.
Top comments (2)
This is interesting for 2 reasons,
user.d
and it would return the user? Isn't that circular? Or am I not getting it? Could you explain?I'll definitely check them out.
This is pretty useful for debugging.