where
метод връща ActiveRecord::Relation
обект и сам по себе си този обект не издава заявка към база данни. Важно е къде използвате този обект. join
метод също така мързеливо зарежда заявката към базата данни, като използва свързаната таблица, но зарежда само Home
таблица в паметта като свързания User
таблица не се изисква. След това имате merge
, какво merge
методът прави е прост начин за използване на именуван обхват върху обединен модел. Нещо като
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end