/ / Definições de configuração para active_merchant para ser compatível com uma aplicação Rails 3 - ruby-on-rails-3, activemerchant

Definições de configuração para active_merchant para ser compatível com um aplicativo do Rails 3 - ruby-on-rails-3, activemerchant

Estou seguindo http://railscasts.com/episodes/145-integrating-active-merchant

Como faço para definir as configurações para serem compatíveis com um aplicativo do Rails 3.

Eu tentei colocar o seguinte em 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

O seguinte processa um erro:

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

Respostas:

4 para resposta № 1

Parece que você só precisa se livrar do config.after_initialize do bloco - deve inicializar bem depois disso.


1 para resposta № 2

Você pode colocar este código em seu arquivo de ambientes, por exemplo, config / environments / development.rb, production.rb, etc.

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

0 para resposta № 3

Você precisa mudar config.after_initialize para ApplicationName::Application.config.after_initialize e deveria estar funcionando.