Russell writes in the post The Dynamic Language Advantage: A Concrete Example:
"All you have to do is make the call to the non-existent method that contains your column names and Rails will dynamically generate the method for you."
Though he got quite some flak for his opinion.
@cards = Card.find_all_by_cardType_and_expirationData(cardTypeId, expirationDate)
Which looks magic to most people and most impressive. But in the end it's not more safe or magic than
Card.find("all_by_cardType_and_expirationData", cardTypeId, expirationDate);
This code can easily be written in any static language, becasuse the method missing property is no more safe or expressive than a String
. The idea that parsing a method name from method missing
is different than parsing a String
in this case is a fallacy. I wonder why not more people use Strings
like this to create finders? Perhaps because it's not a good idea, as some comments in the mentioned post claim?
Thanks for listening.