代码之家  ›  专栏  ›  技术社区  ›  Jeriko

在RoR中重新打开类的位置

  •  9
  • Jeriko  · 技术社区  · 14 年前

    我正试图重新打开 String 在rails中初始化并添加更多方法供我的应用程序使用。编写代码不是一个问题-我的问题是这个代码应该去哪里。

    在不同的模型文件中重新打开一个类对我来说毫无意义,因为它实际上与任何特定的模型都没有任何关系。我想也许在 config lib

    总而言之,哪里是定义类修改代码最合理的地方,根据代码加载的位置/时间是否有任何含义?

    2 回复  |  直到 14 年前
        1
  •  20
  •   alex.zherdev    14 年前

    config/initializers 目录。任何 *.rb 当rails启动时,您在这里输入的文件将自动执行。如果你愿意,你可以把它们放在一个子文件夹里,这样你就可以做类似的事情 config/initializers/extensions/*.rb

        2
  •  7
  •   Hank Gay    14 年前

    我尽量将这些猴子补丁保持在最低限度,只有当它们非常清楚地符合我的代码的最佳利益时。

    最近,我更喜欢将文件组织在lib/monkey/string.rb、lib/monkey/hash.rb等文件夹中。然后我需要environment.rb文件中lib/monkey文件夹中的所有文件。

    # Load all monkey-patches.
    Dir["lib/monkey/*.rb"].each {|monkeyfile| require monkeyfile}
    

    这使得我的所有类修改代码在出现问题时都被隔离到一个位置。我也喜欢有点愚蠢的命名,因为它使它突出的东西要注意。有人可能有更好的系统,如果是的话。。。我很想听听!