小弟是一枚 Rails 新手,最近在看 Ruby 元编程谈及到 Active Record 里头的动态属性以及动态查找器,发现有一些比如 find_all_by_## 的查找器我没见过,在 Avtive Record 的文档里头也没找到对应叙述,可能是我找的有问题,但是我想知道所有这些动态方法的约定都在哪里?感谢~
像 find_by_ 这样的是在这里https://github.com/rails/rails/blob/master/activerecord/lib/active_record/dynamic_matchers.rb#L16 通过 method_missing 构造的
网上搜到的: find_all_by_* methods are going to be deprecated in Rails 4
是的,这类动作废弃了,新的用
find_by(name: 'foo')
http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_by