找到前10个用户,并取出该用户的邮政编码
clients = Client.limit(10)
clients.each do |client|
puts client.address.postcode
end
这样写相当于发了11条查询语句
select * from clients limit 10;
select postcode from address where client_id = client.id;
select postcode from address where client_id = client.id;
select postcode from address where client_id = client.id;
.......
解决方法
clients = Client.includes(:address).limit(10)
clients.each do |client|
puts client.address.postcode
end
这样写发了2条查询语句
select * from clients limit 10;
select addresses.* from addresses where (addresses.client_id in (1,2,3,4,5,6,7,8,9,10));