ruby中似乎有两种类型,一种我不需要它们总是可访问的类型(如Float,Array,Hash等)。他们是红宝石的一部分,这是预期的。
但是除非明确要求,否则还有一些常量无法访问(例如REXML,Observable,YAML)。它们也是Ruby的一部分,我希望能够在不需要的情况下访问它们。
为什么没有要求这些常量不可用?
在Rails指南中,不建议明确要求任何内容,因为这会混淆Rails自动加载机制。如果还需要这些常量,那么最好的方法是什么?
我应该使用需要还是 require_dependency ?
我应该在使用常量的文件顶部使用require还是应该以某种方式全局地执行?
编辑:此外,由于常量可用性取决于加载顺序,因此很容易忘记需要一些文件,并且在加载顺序以某种方式更改之前它不会中断。除了对你使用的每个常数都有额外的警觉之外,没有面对这种错误的最佳方法是什么?
答案 0 :(得分:2)
有两种东西是"内置"。
如果还需要这些常量,那么最好的方法是什么?
如果你没有对它们进行monkeypatch,那么你只需要继续,并根据需要随时提出要求。我通常在文件的顶部使用它们。
如果你做monkeypatch他们,我建议你重新考虑。 :)