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 № 1Parece 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.