0
我有一個與用戶類HABTM關係的事件類。我正在嘗試創建一個Event範圍,其中只包含與其關聯的2個用戶的事件。Rails的範圍與HABTM關係計數
我現在有一個返回之後的賽事#狀態的方法:
def status
self.users.length == 2 ? "matched" : "not matched"
end
所以現在基本上我試圖找出如何寫一個範圍,包括所有「匹配」的事件。我試過scope :matched, self.users.length == 2
,這根本不起作用,但有沒有類似的方式,我錯過了?
編輯:這種類方法正確地做到了這一點,但如果我可以將它封裝在一個範圍內,它仍然會很好。
def self.pending
Event.all.map { |e| e if e.status == "matched" }
end
我實際上簡化了一下這個方法,它應該返回三種不同的狀態。 'where(:users.count => 2)'不起作用,不幸的是 - 它表示沒有符號的計數方法。 –
也許''users.count''會起作用;我只是快速搜索語法,但沒有成功。無論如何,這是基本的想法。 –