Trata-se de um framework de código aberto para desenvolvimento de aplicações Web, escrito em Ruby.
Rails foi projetado para:
- Ser uma solução de desenvolvimento completa;
- Permitir que suas camadas se comuniquem da forma mais transparente possível;
- Ser uniforme, escrito totalmente apenas em uma linguagem;
- Seguir a arquitectura MVC (Model-View-Controller).
Essas características tornam o Rails extremamente produtivo e mantem baixa a curva de aprendizagem.
O Rails, ou Ruby on Rails, ou ainda RoR, pode também ser chamado de um "meta-framework" pois tem em sua extrutura outros 5 frameworks:
- Active Record;
- Action Pack;
- Action Mailer;
- Active Support;
- Active Resource.
Tempo de desenvolvimento: Rails segue dois conceitos que visam aumentar a produtividade do desenvolvedor: DRY e Convention over Configuration.
DRY (Don't Repeat Yourself, Não se repita) é o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros. Com isso, economiza-se tempo, já que não é necessário alterar a tabela, o "bean", o "form bean", o "local home", alterando apenas o banco de dados.
Convention over configuration: Diz basicamente que deve-se assumir valores padrão onde existe uma convensão. Caso o desenvolvedor deseje, pode-se sobrescrever essa convensão com o valor necessário. Com isso, o tempo de desenvolvimento cai ainda mais.