两个几乎相同的Rails项目,在一个中缺少gem helper文件而在另一个中没有

时间:2012-09-08 15:31:49

标签: ruby-on-rails helpers authorize.net

我在主目录中的同一父级下有两个rails项目,具有相同的环境。两者都使用authorize-net(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,两者都在其application_controller.rb顶部有helper :all。然而一个工作正常,另一个得到MissingSourceFile (Missing helper file helpers/authorize_net_helper.rb)错误。辅助文件实际上位于~/.rvm/gems/ruby-1.8.7-p358@global/gems/authorize-net-1.5.2/lib/app/helpers/authorize_net_helper.rb

我不能为我的生活弄清楚为什么一个有效而另一个无效。谁能指出我正确的方向?我怎样才能弄清楚Rails在每种情况下使用什么路径来找到这个帮助器?

1 个答案:

答案 0 :(得分:1)

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

意识到工作项目来自authorize.net的示例而非工作项目没有,我发现authorize-net gem有一个我没用过的生成器。所以我通过生成器代码,并意识到我错过了一个我确定已经创建的初始化程序。这个初始化器只是从YML文件中加载一些常量(api_login_id和api_transaction_key)并且与路径没有任何关系,但我还是创建了它,然后才意识到我之前已经创建了它但是把它放在控制器而不是config / initializers中。无论如何,当我重新启动WEBrick时,一切正常,没有路径问题。现在我已经多次重启WEBrick,包括在发布此问题之前。但这次问题消失了。

我讨厌发生这种情况。