我期待创建工作方式类似于这样的功能ActiveRecord::Base
的find_by_'column_name'
作品.例如,如果我做了类似的事情
User.find_by_address("1234 Apple Road")
它将通过address
列查找.但我对它是如何工作感到困惑.
我看都self.prefix
和self.suffix
当我在代码中的"动态匹配器",例如码看这里,但在我的研究,我无法找到任何东西self.prefix
或self.suffix
为Ruby.
我该如何创建这种功能?
它使用method_missing
,这是Ruby在调用具有无法识别名称的方法时提供的回调.这是在Ruby中使用动态名称创建方法的标准方法.
传递给它的第一个参数是表示方法名称的Symbol,然后它接收传递给无法识别的方法的每个参数.