1

在我们的 Rails 3 网站上,我们需要根据客户可以访问的产品过滤信息。

我们可以通过添加来做到这一点

["product_id in (?)",[allowed_products_array]] 

在每个具有product_id的类的应用程序的任何地方执行的每个查询中,但这将是很多更改,因此需要支持很多代码,所以我正在考虑以某种方式自动化这个过程

这种自动过滤器的最佳解决方案是什么?

我正在考虑为连接到产品的所有类添加全局 ActiveRecord 查询覆盖,但我不知道如何实现

4

1 回答 1

3

为此使用 default_scope

http://apidock.com/rails/ActiveRecord/Base/default_scope/class

在你的情况下…… 像

default_scope where("product_id in (?)",[allowed_products_array])

您可以将其提取到模块中并包含到您希望具有此功能的每个模型中。

于 2013-01-03T10:00:34.533 回答