ruby on rails如何动态定义`find_by_id`,`find_by_name`方法?

时间:2018-11-02 07:11:37

标签: ruby-on-rails

我有兴趣了解find_by_(column_name)的工作方式。 Ruby on Rails如何动态定义调用find_by_idfind_by_name等的方法?

1 个答案:

答案 0 :(得分:2)

这是Ruby中元编程的强大功能,更具体地说,是method_missing方法:https://ruby-doc.org/core-2.1.0/BasicObject.html#method-i-method_missing

当您在未在该类中定义的Class的实例上调用方法时,method_missing会对其进行捕获,然后可以在那里进行处理。