Мне интересно понять, как работает find_by_(column_name). Как Ruby on Rails динамически определяет метод вызова find_by_id, find_by_name и т. Д.?
find_by_(column_name)
find_by_id
find_by_name
Это сила метапрограммирования в Ruby, а точнее метод method_missing: https://ruby -doc.org / core-2.1.0 / BasicObject.html # method-i-method_missing
method_missing
Когда вы вызываете метод для экземпляра класса, который не определен в этом классе, method_missing ловит его, и вы можете обработать его там.