class FallbackController < ApplicationController
private def handle_with(klass, params: {}, **context) klass.new.call(params, context) do |monad| case monad in Dry::Monads::Failure(errors) respond_to do |format| format.html do raise ActionController::RoutingError.new(errors) end format.json do render json: errors end end in Dry::Monads::Success(resource) respond_to do |format| format.html { @data = resource } format.json do render json: resource.to_json end end in Dry::Monads::Success(*list) respond_to do |format| format.html { @data = list } format.json do render json: list.to_json end end end end end
end