在RoR重新开课的地方

时间:2010-05-04 14:29:38

标签: ruby-on-rails ruby

我正在尝试重新打开rails中的String类,并为我的应用添加更多方法。编写代码不是问题 - 我的问题是代码应该去哪里。

在不同的模型文件中重新打开一个类是没有意义的,因为它实际上与任何模型没有任何关系。我想也许在configlib的某个地方会有意义,但我还不是特别熟悉RoR。

总结一下,定义类修改代码的最合理位置在哪里,是否有任何影响,具体取决于代码加载的位置/时间?

2 个答案:

答案 0 :(得分:20)

最合乎逻辑的地方可能是config/initializers目录中的文件。您在此处输入的任何*.rb文件将在rails启动时自动执行。如果需要,可以将它们放在子文件夹中,这样就可以执行config/initializers/extensions/*.rb

之类的操作

答案 1 :(得分:7)

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

最近我更喜欢将文件保存在lib / monkey / string.rb,lib / monkey / hash.rb等文件夹中。然后我需要环境中lib / monkey文件夹中的所有文件.rb文件。

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

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