为什么all
中定义的ActiveRecord::Base
方法未在documentation中列出?
我知道它是在这里定义的,因为我运行了Post.method(:all).source_location
并得到了这个输出:
["/Users/space/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.3/lib/active_record/base.rb",
440]
答案 0 :(得分:3)
因为它是由delegate
“宏”定义的,文档生成器不知道delegate
调用会产生定义all
方法的副作用。
旁注: YARD (Yay! A Ruby Documentation Tool)是可编程的,可以轻松扩展以推断出这一点(如果还没有)。
答案 1 :(得分:2)
因为他们被委派了。看看第441行。文档处理器不执行代码,因此无法很好地处理元编程。