是否有一种优雅的方式来重构与Ruby / Rails宝石的命名空间冲突?

时间:2011-10-05 12:46:12

标签: ruby ruby-on-rails-3 namespaces

我想使用Ruby gem Turn,但它目前与我称之为'Turn'的模型(ActiveRecord)相撞。最终的结果是我的测试结果是borked。

我意识到我可以简单地重构我的模型,但我想知道是否有一种优雅的方式我可以命名宝石而无需触摸我的模型。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

不幸的是,没有办法影响gem将使用哪些模块(命名空间)。 Ruby所需的文件将始终在全局范围内进行评估。

对于宝石作者来说,最佳做法是使用与宝石名称相同的模块,因此通常您知道在安装宝石时会发生什么。

除了不使用Turn之外,唯一的解决方案是更改模型的名称或将其放在命名空间内。