配置 active_merchant 以与 Rails 3 应用程序兼容

Posted

技术标签:

【中文标题】配置 active_merchant 以与 Rails 3 应用程序兼容【英文标题】:Config settings for active_merchant to be compatible with a Rails 3 app 【发布时间】:2011-11-03 22:50:11 【问题描述】:

我关注http://railscasts.com/episodes/145-integrating-active-merchant

如何设置配置设置以与 Rails 3 应用程序兼容。

我尝试将以下内容放入config/initializers/active_merchant.rb

if Rails.env == 'development'
  config.after_initialize do
    ActiveMerchant::Billing::Base.mode = :test
    ::GATEWAY = ActiveMerchant::Billing::PaypalGateway.new(
      :login     => 'seller12341234zxcv.foobar.com',
      :password  => 'pasword',
      :signature => 'abc123'
    )
  end
elsif Rails.env == 'test'
  config.after_initialize do
    ActiveMerchant::Billing::Base.mode = :test
    ::GATEWAY = ActiveMerchant::Billing::BogusGateway.new
  end
elsif Rails.env == 'production'
  config.after_initialize do
    ActiveMerchant::Billing::Base.mode = :test
    ::GATEWAY = ActiveMerchant::Billing::PaypalGateway.new(
      :login     => 'seller12341234zxcv.foobar.com',
      :password  => 'pasword',
      :signature => 'abc123'
    )
  end
end

以下呈现错误:

config/initializers/active_merchant.rb:2:in `<top (required)>': undefined local variable or method `config' for main:Object (NameError)

【问题讨论】:

【参考方案1】:

看起来您只需要删除 config.after_initialize do 块——之后应该可以正常初始化。

【讨论】:

【参考方案2】:

您可以将此代码放在您的环境文件中,即 config/environments/development.rb、production.rb 等只需使用

config.after_initialize do
  ActiveMerchant::Billing::Base.mode = :test
  ::GATEWAY = ActiveMerchant::Billing::PaypalGateway.new(
   :login     => 'seller12341234zxcv.foobar.com',
   :password  => 'pasword',
   :signature => 'abc123'
  )
end

【讨论】:

config/environments/&lt;environment&gt;.rb 文件中添加此代码是rails 2 的事情,并且与rails 3 不完全兼容。因此在升级rails 2.3 应用程序时在其他地方遇到了问题。 Rails 3 的方法是将所有这些配置放在一个初始化文件中。【参考方案3】:

您需要将config.after_initialize 更改为ApplicationName::Application.config.after_initialize,它应该可以工作。

【讨论】:

以上是关于配置 active_merchant 以与 Rails 3 应用程序兼容的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Spring Security SAML 以与 Okta 一起使用?

如何为 keycloak 配置数据源以与 galera 集群配合使用?

dropwizard 应用程序中的配置更改以与 react browserHistory 一起使用

配置 Flash 播放器以与在 Maven 发布期间执行的 Flexmojos 一起使用:执行

如何配置 Mailgun 以与 Sign in with Apple 和 Apple 的中继服务一起使用?

编译Angular2 TS时如何配置gulp-typescript以与JSPM一起使用