
Consultas avançadas do ActiveRecord
Query interface, where, joins, includes, eager loading, problema N+1, transactions, locking (optimistic/pessimistic)
1Qual método do ActiveRecord recupera um registro pela sua chave primária e lança uma exceção se não for encontrado?
Qual método do ActiveRecord recupera um registro pela sua chave primária e lança uma exceção se não for encontrado?
Resposta
O método find recupera um registro pela sua chave primária e lança uma exceção ActiveRecord::RecordNotFound se o registro não existir. Isso garante que o código falhe explicitamente em vez de continuar com um valor nil. Para evitar a exceção e retornar nil em vez disso, use find_by(id: value).
2Qual é a principal diferença entre find_by e where.first no ActiveRecord?
Qual é a principal diferença entre find_by e where.first no ActiveRecord?
Resposta
find_by retorna diretamente um único registro ou nil, enquanto where.first retorna uma relação ActiveRecord e depois chama first para obter o primeiro resultado. Na prática, find_by gera uma consulta otimizada com LIMIT 1, enquanto where pode potencialmente carregar mais dados antes de selecionar o primeiro elemento.
3Como passar múltiplas condições ao método where no ActiveRecord?
Como passar múltiplas condições ao método where no ActiveRecord?
Resposta
O método where aceita um hash com várias chaves para especificar múltiplas condições que serão combinadas com AND. Por exemplo, User.where(status: 'active', role: 'admin') gera WHERE status = 'active' AND role = 'admin'. Para condições OR, use or ou consultas SQL brutas.
O que é o problema N+1 no ActiveRecord?
Qual método usar para resolver o problema N+1 pré-carregando as associações?
+25 perguntas de entrevista
Outros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programação orientada a objetos em Ruby
Fundamentos do Rails
Routing & Controllers
Fundamentos do ActiveRecord
Views e templates ERB
Associações do ActiveRecord
Formulários Rails
Autenticação e Autorização
Asset Pipeline moderno e frontend
Modo API do Rails
Testes com RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estratégias de caching
Migrações avançadas
Rails Engines e apps modulares
Otimização de desempenho
Padrões de projeto no Rails
Metaprogramação em Ruby
Segurança no Rails
GraphQL com Rails
Implantação e Produção
Monitoring & Logging
Estratégias de upgrade do Rails
Domine Ruby on Rails para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis