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