1

我的主目录中的同一个父级下有两个具有相同环境的 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.gem 'authorize-net', :lib => 'authorize_net在其 config/environment.rb 中,都helper :authorize_net在其相关控制器helper :all的顶部,都在其 application_controller.rb 的顶部。然而,一个工作正常,另一个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 使用什么路径来查找此帮助程序?

4

1 回答 1

1

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

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

我讨厌这种情况发生。

于 2012-09-09T19:56:24.103 回答