我开发了一种Rails引擎,我将其安装在应用程序中。
在开发环境中,我可以使用MyEngine::VERSION
检索引擎版本(它位于/lib/my_engine/version.rb中)。
这会在暂存时产生错误(未初始化的常量MyEngine :: VERSION),我想它也会在生产中失败。
我该如何解决这个问题?
答案 0 :(得分:0)
尝试添加:
require 'my_engine'
和/或
require 'my_engine/version'
到文件的顶部。当Rails选择自动需要代码时以及何时不需要代码时,Rails会做一些容易混淆的不一致的事情。我猜测它可能在开发和生产之间有所不同,从您在开发环境中工作但不在其他环境中工作的描述。
error (constant not found)
听起来意味着MyEngine
实际上还没有加载,并且解决方案是在文件顶部require
,以确保它被加载它还没有。标准ruby实际上始终是require
在任何使用它的文件顶部使用的任何内容;在某些情况下,Rails试图让你在没有这样做的情况下逃脱,但是理解那些案例究竟是什么并且他们似乎总是看起来始终如一地工作可能会令人困惑。所以只是require
,它不会受到伤害。