1

我安装了一个带有初始化文件的 pesapal gem,如下所示;

# Load Pesapal config file when applicatin is loaded ... the config can then be
# accessed from PesapalRails::Application.config.yaml
module PesapalRails
  class Application < Rails::Application
    config.yaml = YAML::load(IO.read("#{Rails.root}/config/pesapal.yml"))
  end
end

当我使用它时,我得到这样的错误;

/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/application.rb:63:in ``inherited'``: You cannot have more than one Rails::Application (RuntimeError)

部分痕迹看起来像这样;

from /var/www/html/webapp/config/initializers/pesapal.rb:4:in `<module:PesapalRails>'
from /var/www/html/webapp/config/initializers/pesapal.rb:3:in `<top (required)>'
4

1 回答 1

0

使固定

升级 gem,v1.2.1 应该可以解决问题(更新日志

简短说明

简单的版本......我的方法是错误的 - 真诚的道歉。红宝石新手。Rails 新手。

长解释

初始化程序旨在创建一个全局变量,您可以在 Rails 应用程序中访问该变量。就我而言,它是PesapalRails::Application.config.yaml。我假设在你的情况下,它是不同的。

gem 假设该全局变量已正确设置,这会带来错误,因为在您的应用程序PesapalRails中不存在(如您所知,初始化程序仅在应用程序启动时运行,因此这是一个安全的假设)。由于我的演示应用程序实际上正在使用命名空间,因此在我的情况下没有发现这一点PesapalRails

要求

希望你能在 Github 上提交问题 -下次在这里(我偶然发现了这个)......这样其他开发人员实际上可能会为讨论/解决方案做出贡献。我愿意尽快审查并推送更新。

于 2013-11-06T18:17:40.500 回答