Я настраиваю сайт рельсов, который будет принимать кредитные карты с ActiveMerchant и PayPal Website Payments Pro. Я успешно тестирую против песочницы PayPal, но мне нужно иметь возможность тестировать и на своем живом сайте. Я хотел бы реализовать решение, при котором при регистрации на моем действующем сайте с адресами электронной почты из моего собственного домена используется песочница PayPal, но для всех остальных он использует действующий сайт PayPal. Таким образом, когда я тестирую свой действующий сайт, я не оплачиваю себя и не облагаю налогом PayPal в процессе: -)
Однако проблема в том, что для того, чтобы ActiveMerchant использовал тестовые серверы, вы пишете эту строку:
ActiveMerchant::Billing::Base.mode = :test
Это устанавливает переменную класса, которая будет применяться к другим транзакциям на сайте, когда я просто хочу, чтобы одна транзакция предназначалась для тестовых серверов.
Кто-нибудь может предложить элегантное решение? Или есть ли лучшие способы для достижения этой цели, кроме решения, которое я имею в виду?