Rails 方法 Array#to_sentence
允许以下操作:
['a', 'b', 'c'].to_sentence # gives: "a, b, and c"
我想扩展此方法以允许它占用一个 block ,这样您就可以执行如下操作(其中 people 是 Person 对象的数组,具有 name 属性):
people.to_sentence { |person| person.name }
# => "Bill, John, and Mark"
我对编写扩展方法没有问题。但我不知道该把它放在哪里。 Rails 核心扩展被加载到 ActiveSupport
深处的某个地方。
我需要一个始终加载和预加载用户定义代码的位置(在任何应用程序代码之前)。
最佳答案
创建 config/initializers/super_to_sentence.rb
。此目录中的所有文件都在 Rails 加载后加载,因此您将有机会覆盖 Rails 的 Array#to_sentence
定义。
对于您想在 Rails 加载之前加载的代码,将其添加到 config/environment.rb
。
关于ruby-on-rails - 重新定义 Rails 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/842359/