Ruby on Rails

Consultas avançadas do ActiveRecord

Query interface, where, joins, includes, eager loading, problema N+1, transactions, locking (optimistic/pessimistic)

28 perguntas de entrevista·
Mid-Level
1

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).

2

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.

3

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.

4

O que é o problema N+1 no ActiveRecord?

5

Qual método usar para resolver o problema N+1 pré-carregando as associações?

+25 perguntas de entrevista

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