我正在寻找一种干净的方式来获得不同的行为,具体取决于我们是在测试、开发、登台还是生产环境中。
我的问题很笼统,但我最好的具体例子是发送通知。假设我的用户模型对象中有一个名为 notify 的函数
def notify(message)
#send a notification to the user (differs depending on the environment)
end
在测试环境中,我想使用一个模拟对象,它只是将通知保存到一个文件中。在登台和生产环境中,我想使用一个 PushNotification 对象,它实际上将 API 请求发送到第三方服务。我需要为每个环境使用不同的 api 密钥。
我在想我会在 lib/notifiers 创建一个文件夹并创建一个 file_notifier.rb 和一个 push_notifier.rb。我不知道在哪里(哪些文件)以及如何初始化正确的通知程序。有任何想法吗?
谢谢!