在以下代碼塊中,在數據庫上實際執行的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
感謝
在以下代碼塊中,在數據庫上實際執行的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
感謝
SQL查詢中people.each do |person|
線執行。 Rails僅在需要時才執行SQL,而不是在構建範圍時執行。它叫做lazy loading。
但是它應該在第2行和第3行。你能解釋你的答案嗎? –
我編輯了我的答案。不,它不應該在第2行和第3行,因爲rails在這些行中不需要查詢的結果。 –
我的回答對你有幫助嗎? –