0
我想知道是否可以將模型實例方法用作where子句查詢。我的意思是。我有一個方法的示範學校規定在where子句中使用方法Rails Ruby Active Record
class School < ActiveRecord::Base
def my_method
users.where(blablabla).present?
end
end
它是更多鈔票要達到這樣的:
School.all.where(my_method: true)
我知道我可以這樣做:
School.all.map{|x| x if x.my_method}
但是這樣一來與查詢相比,在性能上有巨大的懲罰。此外,我正在搜索的返回是一個ActiveRecord關係和映射返回一個數組。
UPDATE:
也有另一種方式來做到這一點,如:
School.all.joins(:users).where("users.attribute = something")
但這不適合正是我想要的有以下幾個原因。
在此先感謝
有你通過導軌要去範圍,請通過它去。這是可能是你正在尋找http://stackoverflow.com/questions/4869994/什麼是範圍命名的範圍在軌道 – chaitanya
如果你能說出你的方法應該達到什麼,你的問題可能會更容易消化。你應該爲他們解釋你的設計決定。您是否嘗試評估某個方法並將其結果發送到「where」,或者您是否試圖爲「where」動態創建條件。 – 2016-07-06 11:08:15