Le where la méthode renvoie un ActiveRecord::Relation objet, et par lui-même cet objet n'émet pas de requête de base de données. C'est là où vous utilisez cet objet qui compte. join la méthode charge également la requête de base de données en utilisant la table associée, mais en ne chargeant que le Home table en mémoire en tant que User associé le tableau n'est pas obligatoire. Ensuite, vous avez merge , ce qui merge La méthode est un moyen simple d'utiliser une portée nommée sur un modèle joint. Quelque chose comme
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end