1
我使用嵌套集來表示嵌套註釋(1討論有很多評論,評論可以回覆),我想(如果可能)急於加載答案註釋。嵌套集模型中的負載關聯
目前我加載所有的根節點並遍歷它們,如果它們有後代我渲染它們。但是,如果有很多根節點有答案,則會觸發大量的數據庫請求。
註釋有這些列: rgt, lft, parent_id
我試圖創建一個這樣的關係:
class Comment < ActiveRecord::Base
has_many :answers, -> (node) { where("lft > ? AND rgt < ?", node.lft, node.rgt) }, class_name: "Comment", foreign_key: :parent_id
end
這將提取的答案的評論評論實例調用時。但是,如果我嘗試eager_load它(Discussion.comments.includes(:answers)
),它會爆炸,因爲node
是零。
是否有可能加載類似這樣的東西?
什麼'node'?什麼是_「所有根節點」_?爲什麼你的'has_many:answers'裏面有'class_name:'Comment''? – smathy 2015-04-01 16:43:32
我的猜測是他有一個共同的模式來回答和評論。只是一個不同的名字。 :P – argentum47 2015-04-01 16:46:44
評論屬於討論(並不重要)。評論有很多答案(答覆),這也是評論。一個根節點是一個評論,它不是回覆(回覆)到另一個評論(parent_id = nil)。 – Linus 2015-04-01 16:57:20