我希望有幾個子類都應該有一個範圍(具有相同的名稱)。雖然我知道這是不可能的直繼承的基本思路是:如何通過抽象活動記錄將範圍添加到子類中
class MySuperClass << ActiveRecord::Base
abstract_class = true
scope :scopeForAllSubclasses , lambda {|my_var| where(:var => my_var)}
end
class Subclass1 << MySuperClass
#has attribute var
end
class Subclass2 << MySuperClass
# has attribute var
end
所以現在我想打電話給
Subclass1.scopeForAllSubclasses123).all
和
Subclass2.scopeForAllSubclasses(123).all
整點它是我想要一組所有已經通過設計實現了這個範圍的類,而不僅僅是因爲開發者決定這樣做。
任何想法?
這是一個不錯的解決方案。然而:在超類上定義的子類和範圍在Rails 2.X中工作,所以Rails 3在這方面退步...... :( – severin 2012-06-05 10:05:16