你在哪里扩展rails应用程序中的类?

dig*_*tie 4 ruby environment ruby-on-rails class

即将使用以下扩展名扩展Array类:

class Array
  def shuffle!
    size.downto(1) { |n| push delete_at(rand(n)) }
    self
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,我想知道哪里有一个保持这种扩展的好地方.我正在考虑environment.rb或在initializers目录中放入自己的文件.

Gre*_*ell 11

我通常遵循ActiveSupport约定,即lib/core_ext/#{class}.rb在这种情况下放置它们lib/core_ext/array.rb.正如John Hyland所说,您可以根据需要明确地要求文件,或者在初始化程序中放置require语句.