非常自我解释。
我使用array_name.first获取第一个元素。你如何扩展它以获得第二,第三,随机等?
感谢。
答案 0 :(得分:2)
在Ruby中,您可以重新打开任何现有的类并添加自己的函数。
在rails中,您已经在activesupport
中定义了这些方法请参阅github上的来源:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/array/access.rb
答案 1 :(得分:0)
我发现它已经存在,至少在Ruby 1.9.2中。
如果不存在,我会在config / initializers中创建一个名为array_helper.rb(或其他)的文件并添加以下代码:
class Array
def second
self[1]
end
end
为什么呢?因为Ruby中的所有类都是开放的,你可以扩展你想要的任何类。
这里有一些技巧要知道:
在控制台中工作时,如果要测试文件,请务必使用rails console
而不是irb
。此外,在创建或更新上述文件后执行reload!
。最后,必须重新创建所有对象以在reload!
之后使用新代码。