首页 > 解决方案 > Rails 应用程序中环境条件的代码重构

问题描述

在我的 Rails 应用程序中,我使用 sidekiq 进行作业调度以完成繁重的任务。所以,我在很多地方都有这段代码:

if Rails.env.development? or Rails.env.test?
   #Call the method directly
else #Rails.env.production?
   #Call the job via sidekiq that calls the said method
end

有什么办法可以清除这个吗?这些天我正在阅读软件设计模式。我无法在这里应用这些知识。您能否建议如何以更易于管理的方式清理或编写它?

标签: ruby-on-railsdesign-patternsrefactoringsidekiq

解决方案


你可以把

require 'sidekiq/testing'
Sidekiq::Testing.inline!

在您的development.rbtest.rb配置文件中以获取您所追求的行为。在您的应用程序业务逻辑中,您将删除环境条件并只调用工作人员(现在将在测试和开发中同步运行)。


推荐阅读