【问题标题】:Where to put custom Array methods or Enumerable methods in Rails在 Rails 中放置自定义 Array 方法或 Enumerable 方法的位置
【发布时间】:2013-03-21 08:02:25
【问题描述】:

我有自定义数组方法,例如

class Array
  def decreasing?
    for i in (0...self.size)
      return false if self[i] > self[i+1]
    end
    true
  end

  def increasing?
    for i in (0...self.size)
      return false if self[i] < self[i+1]
    end
    true
  end
end

还有

module Enumerable
  def sorted?
    each_cons(2).all? { |a, b| (a <=> b) <= 0 }
  end
end

目前我将它们随机放在模型文件中。将这些代码放在 Rails 中的哪个位置更好?

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

我会将其放入名为 array_extensions.rbenumerable_extensions.rb 的初始化程序(在 config/initializers 中)。

【讨论】:

  • 为什么你认为它不属于/lib
  • @Bob,我并不是说它不属于那里。你说“它必须是”,但它不一定是,正如我的回答所示。如果你把它放在 /lib 中,你必须首先使用不需要的初始化器 require 它。
  • 谢谢)您可以将lib 添加到autoload_paths,它将被加载)
  • 测试两种方式都可以,但使用config/initializers更方便。
【解决方案2】:

我觉得可以在/lib目录下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    相关资源
    最近更新 更多