2
如何將ActiveRecord對象數組上的過濾器變成範圍?如何在Rails中使用基於非查詢的範圍
比如把這個:
Users.all.collect { |u| u.has_super_powers? }
分爲:
scope :supers, #something here
的一點是,它可以作爲一個範圍,以便Users.all並不總是 「所有」,如:
Users.undeleted.supers.find_by_this('that')
我想也許在範圍中使用lambda表達式的方式,但不要認爲這樣做會奏效,因爲我無法訪問記錄,因爲表達式被添加到數據庫查詢中,並且不會作爲結果後的後續步驟運行。
什麼是'has_super_powers?'Scopes只能處理數據庫中的數據,而不是Ruby方法。 – 2012-03-07 00:07:44