De where
methode retourneert een ActiveRecord::Relation
object, en op zichzelf geeft dit object geen databasequery uit. Het is waar u dit object gebruikt dat ertoe doet. join
methode en laadt de databasequery lui door de bijbehorende tabel te gebruiken, maar laadt alleen de Home
tabel in het geheugen als de bijbehorende User
tafel is niet nodig. Daarna heb je merge
, wat merge
methode doet is een eenvoudige manier om een benoemd bereik op een samengevoegd model te gebruiken. Iets als
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end