2013-05-14 172 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将许多责任放在一个类中 - 验证,持久性,查找/查询。如果你真的关心在一个地方封装这些方法,那么你可能会考虑创建一个单独的类(它可以防止“误用”自然,因为它只有与查询有关的方法),它只处理查询相关的逻辑。 (还有其他策略也可以考虑)