假設我有許多不同的類,它們繼承自Tree
,並且它們中的每一個都實現了一種稱爲grow!
的方法,但是具有稍微不同的ActiveRecord實現。說每種方法有一個ActiveRecord查詢開始尋找合適的樹木像成長:在Rails中使用procs動態激發不同的主動記錄查詢?
trees = Tree
.joins(:fruits)
.where(land_id: land.id)
.where(fruits: { sweet: true })
.where(fruits: { season_id: season.id })
說,我們希望從查詢到查詢換出部分是部分:
.where(fruits: { sweet: true })
假設我們想要建立一個WinterTree
類和它自己的生長方法,但它只生長非甜的水果,所以我們想要返回只生長非甜水果的樹。反正有沒有必要重寫剩下的查詢,只換出一個查詢的一部分,也許在父類Tree
類中寫下其餘的查詢?無論如何要動態地調用查詢的AR段。
我發現使用where語句構建動態查詢很容易sql如:Tree.joins(:fruits).where(「land_id =?」,land.id)等 – bkunzi01
心靈充實這個答案? – Jwan622