DevForge

Ruby on Rails

Framework web full-stack que prioriza a produtividade do desenvolvedor e convenção sobre configuração. Inclui Ruby, Rails, Bundler e ferramentas essenciais.

⚡ Instalação automatizada (Ruby + Rails)

Linux / WSL
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/rails/install.sh | bash -s 3.2
Windows PowerShell (Admin)
Set-ExecutionPolicy Bypass -Scope Process; iex "& { $(irm https://rafaelferreira2312.github.io/devforge/scripts/rails/install.ps1) } 3.2"
macOS (Homebrew)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/rails/install.sh | bash -s 3.2

Os scripts instalam o Ruby via RVM/rbenv, configuram o Bundler e instalam o Rails com suas dependências (Node.js, Yarn, PostgreSQL/MySQL).

Requisitos mínimos

  • CPU: 2+ núcleos (x86_64 ou ARM64)
  • RAM: 2 GB (recomendado 4 GB para Rails + assets)
  • Armazenamento: 5 GB SSD (gems + node_modules)
  • SO: Ubuntu 20.04+, Debian 11+, RHEL 8+, Windows 10/11 (WSL2), macOS 11+

Hardware recomendado (Dev)

  • Notebook: Dell XPS, MacBook Pro M1/M2, Lenovo ThinkPad
  • CPU: i7 / Ryzen 7 ou superior
  • RAM: 16 GB (32 GB para Docker + múltiplos serviços)
  • SSD NVMe 512 GB+

🛠️ Stack recomendada

Ferramentas essenciais

  • Gerenciador de versões Ruby: RVM / rbenv
  • Gerenciador de gems: Bundler
  • Banco de dados: PostgreSQL / MySQL / SQLite
  • Frontend: Node.js + Yarn (para assets)
  • Servidor: Puma / Unicorn

Extensões VSCode

  • Ruby (rebornix)
  • Ruby Solargraph (intellisense)
  • Rails (bung87)
  • Prettier - Code formatter
  • ERB Formatter

Docker (opcional)

docker run -it --rm ruby:3.2-slim bash -c "gem install rails && rails --version"

🔧 Troubleshooting (diagnósticos reais)

❌ Erro: "ruby: command not found"

Causa: Ruby não instalado ou RVM/rbenv não carregado.
Solução: Verifique com which ruby ou execute source ~/.rvm/scripts/rvm.

⚠️ Erro: "Gem::FilePermissionError" ao instalar gems

Causa: Tentativa de instalar gem global sem permissão.
Solução: Use gem install --user-install nome_gem ou use rvm/rbenv para instalação local.

🐘 Erro: "cannot load such file -- sqlite3/sqlite3_native"

Causa: Biblioteca sqlite3 não instalada.
Solução: No Linux: sudo apt install libsqlite3-dev. No macOS: brew install sqlite3.

⚠️ Erro: "Webpacker configuration not found" (Rails 6/7)

Causa: Assets JS não compilados ou Node.js ausente.
Solução: Execute bundle exec rails webpacker:install ou mude para importmap no Rails 7+.

Diagnóstico automático:

ruby -v && rails -v && gem -v && bundle -v && node -v && yarn -v && echo "---" && which ruby

Este comando verifica: versão do Ruby, versão do Rails, versão do Bundler, Node.js, Yarn e localização do binário Ruby.

⚙️ Comandos Rails úteis

rails new meu_app – cria novo projeto Rails
rails server – inicia o servidor (localhost:3000)
rails generate scaffold Post title:string body:text – gera CRUD completo
rails db:create && rails db:migrate – cria e migra banco
rails console – abre console interativo
bundle install – instala gems do Gemfile
bundle update – atualiza gems

💎 Gems populares para Rails

gem 'devise' – autenticação
gem 'pundit' – autorização
gem 'active_storage' – upload de arquivos
gem 'bullet' – otimização N+1
gem 'pry-rails' – debugger
gem 'ransack' – busca avançada

⚠️ IMPORTANTE - Como executar os scripts corretamente

Os scripts abaixo funcionam em Windows, Linux e macOS. Siga as instruções específicas do seu sistema:

WINDOWS (PowerShell)
# ERRO COMUM: "arquivo não assinado" ou "execução de scripts desabilitada" # SOLUÇÃO 1: Executar com bypass (recomendado) powershell -ExecutionPolicy Bypass -File "C:\caminho\script.ps1" # SOLUÇÃO 2: Baixar e executar direto (pode ter erro de codificação) powershell -ExecutionPolicy Bypass -Command "iex (irm https://.../script.ps1)" # SOLUÇÃO 3: Habilitar execução permanentemente (como Administrador) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Se houver erros de acentuação (caracteres estranhos): O script ainda funciona, apenas a saída visual pode ficar distorcida
LINUX / WSL (Bash)
# ERRO COMUM: "permission denied" ou "comando não encontrado" # SOLUÇÃO 1: Dar permissão de execução (obrigatório) chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Executar via curl (baixar e executar direto) curl -fsSL https://.../script.sh | bash # SOLUÇÃO 4: Se der erro de permissão, use sudo (cuidado!) sudo chmod +x script.sh && sudo ./script.sh # Se houver erros de permissão: Execute 'ls -la script.sh' para verificar permissões atuais
macOS (Terminal / Zsh)
# ERRO COMUM: "permission denied" ou "operation not permitted" # SOLUÇÃO 1: Dar permissão de execução chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Se der erro de "quarentena" (arquivo baixado da internet) xattr -d com.apple.quarantine script.sh # SOLUÇÃO 4: Executar via curl curl -fsSL https://.../script.sh | bash # Se erro persistir: Vá em Preferências do Sistema → Segurança e Privacidade → Permitir execução

Dicas importantes:
Windows: Se aparecerem caracteres estranhos (ex: "�" ou "ção"), ignore - o script funciona normalmente. Para evitar, baixe o script localmente e execute.
Linux/macOS: Sempre use chmod +x antes de executar scripts baixados.
WSL (Windows): Siga as instruções do Linux, mas certifique-se de que o script está dentro do sistema de arquivos do Linux (não no /mnt/c/).

📜 Scripts prontos

Scripts verificados no Ubuntu 22.04/24.04, Debian 12, macOS 13+ e Windows 10/11 com WSL2.

❓ Perguntas frequentes

RVM vs rbenv: qual usar?

RVM: mais completo, gerencia gemsets. rbenv: mais leve e simples. O script DevForge usa RVM por padrão, mas você pode trocar facilmente.

Como lidar com versões diferentes de Ruby entre projetos?

Use RVM: rvm install 3.2.0 && rvm use 3.2.0 ou crie um .ruby-version na raiz do projeto.

Rails 7 vs Rails 6: principais diferenças?

Rails 7 introduziu Hotwire (Turbo + Stimulus) como padrão para frontend, substituindo Webpacker por importmap-rails, e melhorias de performance.

Como melhorar performance do Rails em desenvolvimento?

Use rails server -e development --restart, adicione gem 'rack-mini-profiler' e otimize consultas com bullet.