Com uma aplicação no ar, você pode acabar alterando seu banco de dados, adicionando, apagando registros, entre outras coisas que podem tornar algumas associações órfãs.
Vamos supor que tenhamos a seguinte estrutura:
class Article < ActiveRecord
belongs_to :author
end
class Author < ActiveRecord
has_many :articles, dependent: :nullify
end
Agora, ao apagar autores, os artigos vão permanecer na base, mas o author_id
ficará nulo. Só que com o que temos hoje em mãos, para encontrar esses artigos teríamos que fazer uma query como:
Article.left_joins(:author).where(authors: { id: nil })
Com essa mudança no Rails, que irá entrar na versão 6.1 (que no momento da publicação desta dica encontra-se em Release Candidate), você poderá fazer:
Article.where.missing(:author)
Tornando, assim, a query muito mais fácil de produzir e de ler!