1

我有一个利用savongem 的引擎。当我在引擎中运行虚拟应用程序时/test,一切正常,但是当我尝试在我的应用程序中将它作为引擎安装并运行时,我收到错误:

`require': no such file to load -- savon (LoadError)

我曾经通过添加require "savon"到使用它的模型顶部来包含soap_model.rb它。根据这篇文章,我不应该将它添加到模型中,但是environment.rb. 启动服务器时似乎没有environment.rb运行,因为它只是产生了一个新错误

uninitialized constant EngineName::SOAP::Savon

所以我将它添加到初始化程序中,当尝试使用rails s.

环境:

Mac OS 10.7.3
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]
Rails 3.1.4
savon (0.9.9)

注意:我当然已经确保 bundle install 正确运行,并重新启动了服务器。

4

2 回答 2

0

我不知道为什么 Gem 表现得如此怪异,但您可以尝试该代码:

您必须首先要求然后包含它。

# config/initializers/application.rb
require 'savon'

include EngineName::SOAP::Savon

希望能帮助到你。

于 2012-05-21T17:04:39.660 回答
0

gem 包含在引擎 Gemfile 中,但没有作为依赖项添加到 gemspec 中,因此bundle install在主应用程序中运行时它不包含在内。

将此添加到enginename.gemspec

s.add_dependency "savon"

使一切正常。

它在虚拟应用程序中工作的原因是它与引擎共享 Gemfile。

于 2012-05-23T10:09:28.120 回答