2013-05-14 196 views
0

我需要爲我的ActiveRecord創建一個類方法。 但是這種方法並不是一個範圍,所以我想避免它像範圍一樣被濫用。 可以做嗎?ActiveRecord:不使用範圍的類方法

+2

您**可以**通過'def self.your_method_name'創建類方法並將其標記爲'private'。 – kiddorails 2013-05-14 13:43:02

+0

謝謝。但我需要他們公開。 – 2013-05-14 13:44:09

+1

然後恕我直言,它也容易出現任何濫用,你害怕與範圍。 – kiddorails 2013-05-14 13:51:07

回答

1

像kiddorails暗示,這是不可能的。其根本原因是AR將許多責任放在一個類中 - 驗證,持久性,查找/查詢。如果你真的關心在一個地方封裝這些方法,那麼你可能會考慮創建一個單獨的類(它可以防止「誤用」自然,因爲它只有與查詢有關的方法),它只處理查詢相關的邏輯。 (還有其他策略也可以考慮)