У меня есть страница, которая позволяет пользователю запускать отчет. Я использую Rails 5. Моя страница отчетов позволяет пользователю выбирать разные типы отчетов. Итак, у пользователя есть выпадающий список со следующими параметрами: Tax
, Order
, Refund
и так далее.
В зависимости от их выбора, я создам экземпляр подкласса моего Reports::Report
класса для их выбранной опции.
В настоящее время я делаю это:
if params[:report_type] == "Tax"
Reports::Tax.new.run
elsif params[:report_type] == "Order"
Reports::Order.new.run
elsif params[:report_type] == "Refund"
Reports::Refund.new.run
end
Как я могу реструктурировать этот код, чтобы у меня не было бесконечно длинного списка условий для запуска определенных типов отчетов? Какой ООП подход к решению этой проблемы?
Заранее спасибо.