Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quando o Rails executa a consulta e carrega na memória?


O where retorna um ActiveRecord::Relation objeto e, por si só, esse objeto não emite uma consulta ao banco de dados. É onde você usa esse objeto que importa. join O método também carrega a consulta do banco de dados usando a tabela associada, mas apenas carregando o Home table na memória como o User associado tabela não é necessária. Depois você tem merge , o que merge O método faz é uma maneira simples de usar um escopo nomeado em um modelo associado. Algo como
class Home < ActiveRecord::Base
  has_many :users
end

class User < ActiveRecord::Base
  belongs_to :home

  scope :available, ->{ where(available: true) }
end