A maneira mais comum de executar o código ruby em um ambiente de servidor da Web é ter o código implementando uma interface de rack. É uma API muito simples que permite que o servidor da Web fale com seu aplicativo ruby. Para o Apache, o manipulador de rack mais comum é o passageiro (também conhecido como mod_rails e mod_rack). Quase todos os frameworks web atuais do ruby (como rails, sinatra, camping, ...) se conectam ao servidor web usando um manipulador de rack. Você pode usar uma dessas estruturas, mas também pode escrever aplicativos de rack diretamente sem eles. Todos os servidores de aplicativos Ruby (mongrel, thin, unicorn, rainbows, ...) implementam a interface de rack.
Outra alternativa seria usar (f) cgi, mas eu aconselharia você a ficar longe dessa rota, já que a interface e os protocolos são desajeitados e não fornecem recursos de gerenciamento modernos.