ActiveRecord 中的 include 關係

對 include 很多開發者避而不談,也有很多人趨之若騖。其實歸根結底只是生成了不同的 SQL 語句。至於造成的影響,見人見智,當然和項目的需求有很大的關係。

但是有一點,include 既不是天使也不是惡魔。

合理的使用 include 可以避免 N+1 的問題,但是 Rails 生成的 SQL 確實不怎麼好看……而且今天還發現了一個問題:

A 中聲明瞭一個關係

has_many :items, :order => 'some_time_field DESC'

但是在執行 A.find(123, :include => :items) 的時候,可以發現對象的 items 集合並沒有按照預想的順序排列,查看 log 中的 SQL 記錄,發現 order 子句並不在裏面。

暫且歸結爲 BUG 或者未完成狀態吧……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章