O
where retorna um ActiveRecord::Relation objeto e, por si só, esse objeto não emite uma consulta ao banco de dados. É onde você usa esse objeto que importa. join O método também carrega a consulta do banco de dados usando a tabela associada, mas apenas carregando o Home table na memória como o User associado tabela não é necessária. Depois você tem merge , o que merge O método faz é uma maneira simples de usar um escopo nomeado em um modelo associado. Algo como class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end