2016-02-05 67 views
0

在以下代碼塊中,在數據庫上實際執行的SQL的哪一行?因爲只有這樣的Rails需要這個查詢的結果Rails SQL查詢

first_name, last_name = @name.split(", ") 
people = Person.where(first_name: first_name) 
people = people.limit(5) 
people.each do |person| 
    puts person 
end 

感謝

+0

我的回答對你有幫助嗎? –

回答

4

SQL查詢中people.each do |person|線執行。 Rails僅在需要時才執行SQL,而不是在構建範圍時執行。它叫做lazy loading

+0

但是它應該在第2行和第3行。你能解釋你的答案嗎? –

+0

我編輯了我的答案。不,它不應該在第2行和第3行,因爲rails在這些行中不需要查詢的結果。 –