在我提出问题之前,我想提醒大家我是一名编程新手,所以如果我提出一些荒谬的话,请纠正我。
我一直在阅读有关开放类的Ruby,即可以添加一个方法。但是,我试图获得一些Rails如何添加到现有Ruby类的示例。
答案 0 :(得分:2)
Rails拥有如此多的核心扩展,它们位于一个独立的宝石中 - ActiveSupport。
试图在这里解释一切都没有意义,我只想指出the Rails guides。熟悉它们后,请在需要时参考the documentation。
答案 1 :(得分:2)
我是第二个马修斯。 ActiveSupport就是一个很好的例子。看一下这里的一些源代码文件:
https://github.com/rails/rails/tree/master/activesupport/lib/active_support/core_ext
并且,这是一个典型且简单化的示例,它在Ruby中的标准Array类中添加了有用且有些争议的方法。
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/array/access.rb
大多数Ruby库都有一个名为'core_ext','ext'的目录或者这一行的内容,其中包括以某种方式扩展Ruby核心库的方法。人们总是重新发明方法,从某种意义上说,ActiveSupport是这些方法的最终汇编。
答案 2 :(得分:0)
时间。
Loading development environment (Rails 3.2.3)
1.9.3p125 :001 > Time.
Display all 252 possibilities? (y or n)
Time.module_exec
Time.__delay__ Time.mongo_thread_local_accessor
Time.__id__ Time.name
...
Total = 252
$ irb
1.9.3p125 :001 > Time.
Time.hash Time.private_method_defined?
Time.__id__ Time.include? Time.private_methods
Time.__send__ Time.included_modules Time.protected_instance_methods
...
Total = 93