where
metoda zwraca ActiveRecord::Relation
obiekt i sam z siebie ten obiekt nie wysyła zapytania do bazy danych. Liczy się to, gdzie używasz tego przedmiotu. join
metoda leniwy ładuje zapytanie do bazy danych, wykorzystując powiązaną tabelę, ale ładuje tylko Home
do pamięci jako powiązany User
tabela nie jest wymagana. Następnie masz merge
, co merge
Metoda nie jest prostym sposobem użycia nazwanego zakresu w połączonym modelu. Coś jak
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end