我对动态添加方法到我的 Ruby 类的模块很感兴趣。
我正在使用 include 语法将这些带入我的课程,并且一切都按预期工作。
但是,我注意到当我使用 Authlogic 或 Paperclip 等 gem 时,不需要显式导入。我可以简单地在我的 ActiveRecord 派生模型上发出acts_as_authentic 或has_attached_file,并且类方法自动在范围内并被调用来装饰我的类。
这里发生了什么?包含在 Gemfile 中是否将所有类方法隐含在范围内?
我想写一个 Gem 以同样的方式表现。
编辑 - 这篇文章http://yehudakatz.com/2009/11/12/better-ruby-idioms/表明 ActiveRecord::Base 正在通过包含得到增强。这是怎么回事?