Encontrando registros com associação em Rails

Dicas - 06/Dez/2020 - por Henrique Morato

Atualmente, em Rails, a query para encontrar registros com associações não é muito prática nem legível, mas com uma mudança recente podemos melhorar isso.

Vamos supor que nossa aplicação possui a seguinte estrutura:

class Article < ActiveRecord
  belongs_to :author
end

class Author < ActiveRecord
  has_many :articles
end

Para pegar todos os Articles que tem autores, nós teríamos que fazer algo como:

Article.joins(:author).all

É uma query que não comunica tanto a nossa intenção e com essa mudança você poderá fazer:

Article.where.associated(:author)

Essa dica faz par muito bem com outra que publicamos anteriormente, também com o intuito de tornar as queries mais fáceis. No Pull Request o autor coloca outros exemplos mais complexos e interessantes. A mudança está na master do Rails mas ainda não há previsão sobre entrar em alguma release estável.

Foto de perfil do autor
Henrique Morato

Dev