加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何解决Rails模型命名空间冲突

发布时间:2020-12-16 19:34:46 所属栏目:百科 来源:网络整理
导读:到目前为止的故事: 我有一个名为“Term”的模型的rails应用程序.一切都很好,直到尝试安装黄瓜.跑步的时候 rake cucumber 我明白了 Term is not a class (TypeError) 这是因为Cucumber包含另一个gem,’term-ansicolor'(在控制台中执行漂亮的彩色文本输出),te
到目前为止的故事:

我有一个名为“Term”的模型的rails应用程序.一切都很好,直到尝试安装黄瓜.跑步的时候

rake cucumber

我明白了

Term is not a class (TypeError)

这是因为Cucumber包含另一个gem,’term-ansicolor'(在控制台中执行漂亮的彩色文本输出),term-ansicolor定义了一个名为“Term”的模块.在包含Rails模型之前,Cucumber包括term-ansicolor,因此在加载“Term”模型时,“Term”已被定义为模块.顶级模块和类在Ruby中不能具有相同的名称,因此发生冲突.

我不想重命名模型,而是开始修补term-ansicolor gem.事实证明这比我想象的更难.我将Term模块名称更改为“ANSITerm”,但我无法弄清楚如何让Cucumber加载我修改过的gem,我已将其放入RAILS_ROOT / vendor / gems / term-ansicolor.

有任何想法吗?我吠叫错了树吗?

解决方法

两种解决方案

1)将您应用的期限模型更改为其他内容.

2)Patch term-ansicolor具有命名空间Term并改为使用该gem.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读