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