Ruby on rails 两个几乎相同的Rails项目,其中一个项目缺少gem helper文件,而另一个项目则没有

Ruby on rails 两个几乎相同的Rails项目,其中一个项目缺少gem helper文件,而另一个项目则没有,ruby-on-rails,helpers,authorize.net,Ruby On Rails,Helpers,Authorize.net,我有两个rails项目,它们位于我的主目录中的同一个父目录下,并且具有相同的环境。两者都使用授权网(1.5.2)gem。我正在Mac OS X 10.8.1上使用ruby 1.8.7(2012-02-08 patchlevel 358)[i686-darwin11.4.0]、Rails 2.3.14和rvm 1.14.3。它们在config/environment.rb中都有config.gem'authorize net',:lib=>'authorize_net,它们的相关控制器顶部都有he

我有两个rails项目,它们位于我的主目录中的同一个父目录下,并且具有相同的环境。两者都使用授权网(1.5.2)gem。我正在Mac OS X 10.8.1上使用ruby 1.8.7(2012-02-08 patchlevel 358)[i686-darwin11.4.0]、Rails 2.3.14和rvm 1.14.3。它们在config/environment.rb中都有
config.gem'authorize net',:lib=>'authorize_net
,它们的相关控制器顶部都有
helper:authorize_net
,它们的应用程序\u controller.rb顶部都有
helper:all
。然而,其中一个工作正常,另一个出现
MissingSourceFile(missingshelperfilehelpers/authorize\u net\u helper.rb)
错误。帮助文件实际上位于
~/.rvm/gems/ruby-1.8.7-p358@global/gems/authorize-net-1.5.2/lib/app/helpers/authorize\u net\u helper.rb


我一辈子都搞不懂为什么一个可行,而另一个不行。谁能给我指出正确的方向吗?我怎样才能弄清楚Rails在每种情况下使用什么路径来找到这个助手

使用StackExchange宇宙多年来我学到的一件事是,当我遇到一个奇怪的问题,并且在几天内没有得到答案时,我做了一件其他人没有做过或可能永远不会做的蠢事。我想这是其中之一,但我永远不会知道,因为问题已经消失,我不知道为什么

意识到工作项目来自authorize.net的示例,而非工作项目则不是,我发现authorize.net gem有一个我没有使用的生成器。所以我检查了生成器代码,发现我缺少了一个我确信已经创建的初始值设定项。这个初始值设定项只是从YML文件中加载一些常量(api_login_id和api_transaction_key),与路径无关,但我还是创建了它,后来才意识到我以前确实创建过它,但把它放在控制器中,而不是配置/初始值设定项中。不管怎样,当我重新启动WEBrick时,一切正常,没有路径问题。现在我已经重新启动WEBrick很多次了,包括在发布这个问题之前。但这一次问题消失了


我讨厌这种情况。

使用StackExchange宇宙多年来我学到的一件事是,当我遇到一个奇怪的问题,并且在几天内没有得到答案时,我做了一件别人没有做过或可能永远不会做的蠢事。我想这是其中之一,但我永远不会知道,因为问题已经消失,我不知道为什么

意识到工作项目来自authorize.net的示例,而非工作项目则不是,我发现authorize.net gem有一个我没有使用的生成器。所以我检查了生成器代码,发现我缺少了一个我确信已经创建的初始值设定项。这个初始值设定项只是从YML文件中加载一些常量(api_login_id和api_transaction_key),与路径无关,但我还是创建了它,后来才意识到我以前确实创建过它,但把它放在控制器中,而不是配置/初始值设定项中。不管怎样,当我重新启动WEBrick时,一切正常,没有路径问题。现在我已经重新启动WEBrick很多次了,包括在发布这个问题之前。但这一次问题消失了


我讨厌这种情况。

您使用的是rvm宝石吗?如果每个应用程序都有自己的gemset,那么您需要在每个应用程序中安装gems。我不相信我以任何方式使用gemset。两个项目的基本目录中都没有.rvmrc。gem在@global中,我的gem_路径是
/Users/russ/.rvm/gems/ruby-1.8.7-p358:/Users/russ/.rvm/gems/ruby-1.8.7-p358@global
。gem只出现在@global目录中。您使用的是rvm gems吗?如果每个应用程序都有自己的gemset,那么您需要在每个应用程序中安装gems。我不相信我以任何方式使用gemset。两个项目的基本目录中都没有.rvmrc。gem在@global中,我的gem_路径是
/Users/russ/.rvm/gems/ruby-1.8.7-p358:/Users/russ/.rvm/gems/ruby-1.8.7-p358@global
。gem仅出现在@global目录中。